diff --git a/include/applications/options_menu.h b/include/applications/options_menu.h new file mode 100644 index 0000000000..8dbc63f433 --- /dev/null +++ b/include/applications/options_menu.h @@ -0,0 +1,20 @@ +#ifndef POKEPLATINUM_APPLICATIONS_OPTIONS_MENU_H +#define POKEPLATINUM_APPLICATIONS_OPTIONS_MENU_H + +#include "overlay_manager.h" + +typedef struct OptionsMenu { + u16 textSpeed : 4; + u16 soundMode : 2; + u16 battleScene : 1; + u16 battleStyle : 1; + u16 buttonMode : 2; + u16 messageBoxStyle : 5; + u16 : 1; +} OptionsMenu; + +BOOL OptionsMenu_Init(OverlayManager *ovyManager, int *state); +BOOL OptionsMenu_Exit(OverlayManager *ovyManager, int *state); +BOOL OptionsMenu_Main(OverlayManager *ovyManager, int *state); + +#endif // POKEPLATINUM_APPLICATIONS_OPTIONS_MENU_H diff --git a/include/bg_window.h b/include/bg_window.h index 6ef1e3eb84..d40bd8eedd 100644 --- a/include/bg_window.h +++ b/include/bg_window.h @@ -13,6 +13,8 @@ #define TILEMAP_FILL_VAL_KEEP_PALETTE 16 // do not replace the selected palette index #define TILEMAP_FILL_VAL_INCLUDES_PALETTE 17 +#define PIXEL_FILL(color) (((color) << 4) | (color)) + enum DSScreen { DS_SCREEN_MAIN = 0, DS_SCREEN_SUB, diff --git a/include/constants/charcode.h b/include/constants/charcode.h index a9e94c655d..0bcb051fdb 100644 --- a/include/constants/charcode.h +++ b/include/constants/charcode.h @@ -2,104 +2,339 @@ #define POKEPLATINUM_CONSTANTS_CHARCODE_H enum { - CHAR_EMPTY = 0, - CHAR_JP_SPACE, + CHAR_NONE = 0, + CHAR_WIDE_SPACE, - CHAR_JP_0 = 0x00A2, - CHAR_JP_1, - CHAR_JP_2, - CHAR_JP_3, - CHAR_JP_4, - CHAR_JP_5, - CHAR_JP_6, - CHAR_JP_7, - CHAR_JP_8, - CHAR_JP_9, - CHAR_JP_A, - CHAR_JP_B, - CHAR_JP_C, - CHAR_JP_D, - CHAR_JP_E, - CHAR_JP_F, - - CHAR_JP_QUESTION = 0x00E2, - - CHAR_JP_MINUS = 0x00F1, - - CHAR_MENU_ARROW = 0x011F, + CHAR_WIDE_0 = 0x00A2, + CHAR_WIDE_1, + CHAR_WIDE_2, + CHAR_WIDE_3, + CHAR_WIDE_4, + CHAR_WIDE_5, + CHAR_WIDE_6, + CHAR_WIDE_7, + CHAR_WIDE_8, + CHAR_WIDE_9, + CHAR_WIDE_A, + CHAR_WIDE_B, + CHAR_WIDE_C, + CHAR_WIDE_D, + CHAR_WIDE_E, + CHAR_WIDE_F, + CHAR_WIDE_G, + CHAR_WIDE_H, + CHAR_WIDE_I, + CHAR_WIDE_J, + CHAR_WIDE_K, + CHAR_WIDE_L, + CHAR_WIDE_M, + CHAR_WIDE_N, + CHAR_WIDE_O, + CHAR_WIDE_P, + CHAR_WIDE_Q, + CHAR_WIDE_R, + CHAR_WIDE_S, + CHAR_WIDE_T, + CHAR_WIDE_U, + CHAR_WIDE_V, + CHAR_WIDE_W, + CHAR_WIDE_X, + CHAR_WIDE_Y, + CHAR_WIDE_Z, + CHAR_WIDE_a, + CHAR_WIDE_b, + CHAR_WIDE_c, + CHAR_WIDE_d, + CHAR_WIDE_e, + CHAR_WIDE_f, + CHAR_WIDE_g, + CHAR_WIDE_h, + CHAR_WIDE_i, + CHAR_WIDE_j, + CHAR_WIDE_k, + CHAR_WIDE_l, + CHAR_WIDE_m, + CHAR_WIDE_n, + CHAR_WIDE_o, + CHAR_WIDE_p, + CHAR_WIDE_q, + CHAR_WIDE_r, + CHAR_WIDE_s, + CHAR_WIDE_t, + CHAR_WIDE_u, + CHAR_WIDE_v, + CHAR_WIDE_w, + CHAR_WIDE_x, + CHAR_WIDE_y, + CHAR_WIDE_z, + CHAR_WIDE_TRANSPARENT, + CHAR_WIDE_EXCLAMATION, + CHAR_WIDE_QUESTION, + CHAR_JP_COMMA, + CHAR_JP_PERIOD, + CHAR_JP_ELLIPSIS, + CHAR_JP_DOT, + CHAR_WIDE_SLASH, + CHAR_JP_SINGLE_QUOTE_OPEN, + CHAR_JP_SINGLE_QUOTE_CLOSE, + CHAR_JP_DOUBLE_QUOTE_OPEN, + CHAR_JP_DOUBLE_QUOTE_CLOSE, + CHAR_JP_PAREN_OPEN, + CHAR_JP_PAREN_CLOSE, + CHAR_WIDE_MALE, + CHAR_WIDE_FEMALE, + CHAR_WIDE_PLUS, + CHAR_WIDE_MINUS, + CHAR_WIDE_MULTIPLY, + CHAR_WIDE_DIVIDE, + CHAR_WIDE_EQUALS, + CHAR_WIDE_TILDE, + CHAR_WIDE_COLON, + CHAR_WIDE_SEMICOLON, + CHAR_WIDE_PERIOD, + CHAR_WIDE_COMMA, + CHAR_WIDE_SPADE, + CHAR_WIDE_CLUB, + CHAR_WIDE_HEART, + CHAR_WIDE_DIAMOND, + CHAR_WIDE_STAR, + CHAR_WIDE_DOUBLE_CIRCLE, + CHAR_WIDE_CIRCLE, + CHAR_WIDE_SQUARE, + CHAR_WIDE_TRIANGLE, + CHAR_WIDE_DIAMOND_OPEN, + CHAR_WIDE_AT_SIGN, + CHAR_WIDE_EIGHTH_NOTE, + CHAR_WIDE_PERCENT, + CHAR_WIDE_SUN, + CHAR_WIDE_CLOUD, + CHAR_WIDE_UMBRELLA, + CHAR_WIDE_SILHOUETTE, + CHAR_WIDE_EMOTE_SMILE, + CHAR_WIDE_EMOTE_LAUGH, + CHAR_WIDE_EMOTE_UPSET, + CHAR_WIDE_EMOTE_FROWN, + CHAR_WIDE_ARROW_CURVE_UP, + CHAR_WIDE_ARROW_CURVE_DOWN, + CHAR_WIDE_ZZZ, + CHAR_YEN, + CHAR_POCKET_ICON_ITEMS, + CHAR_POCKET_ICON_KEY_ITEMS, + CHAR_POCKET_ICON_TMS, + CHAR_POCKET_ICON_MAIL, + CHAR_POCKET_ICON_MEDICINE, + CHAR_POCKET_ICON_BERRIES, + CHAR_POCKET_ICON_POKEBALLS, + CHAR_POCKET_ICON_BATTLE_ITEMS, + CHAR_ARROW_LEFT, + CHAR_ARROW_UP, + CHAR_ARROW_DOWN, + CHAR_ARROW_RIGHT, + CHAR_ARROW_MENU, CHAR_WIDE_AMPERSAND, - CHAR_EN_0, - CHAR_EN_1, - CHAR_EN_2, - CHAR_EN_3, - CHAR_EN_4, - CHAR_EN_5, - CHAR_EN_6, - CHAR_EN_7, - CHAR_EN_8, - CHAR_EN_9, - CHAR_EN_A = 0x012B, - CHAR_EN_B, - CHAR_EN_C, - CHAR_EN_D, - CHAR_EN_E, - CHAR_EN_F, - CHAR_EN_G, - CHAR_EN_H, - CHAR_EN_I, - CHAR_EN_J, - CHAR_EN_K, - CHAR_EN_L, - CHAR_EN_M, - CHAR_EN_N, - CHAR_EN_O, - CHAR_EN_P, - CHAR_EN_Q, - CHAR_EN_R, - CHAR_EN_S, - CHAR_EN_T, - CHAR_EN_U, - CHAR_EN_V, - CHAR_EN_W, - CHAR_EN_X, - CHAR_EN_Y, - CHAR_EN_Z, // 0x0144 - - CHAR_EN_a = 0x0145, - CHAR_EN_b, - CHAR_EN_c, - CHAR_EN_d, - CHAR_EN_e, - CHAR_EN_f, - CHAR_EN_g, - CHAR_EN_h, - CHAR_EN_i, - CHAR_EN_j, - CHAR_EN_k, - CHAR_EN_l, - CHAR_EN_m, - CHAR_EN_n, - CHAR_EN_o, - CHAR_EN_p, - CHAR_EN_q, - CHAR_EN_r, - CHAR_EN_s, - CHAR_EN_t, - CHAR_EN_u, - CHAR_EN_v, - CHAR_EN_w, - CHAR_EN_x, - CHAR_EN_y, - CHAR_EN_z, // 0x015E - - CHAR_EN_QUESTION_MARK = 0x01AC, - - CHAR_EN_MINUS = 0x01BE, - - CHAR_EN_SPACE = 0x01DE, - - CHAR_NUM_SPACE = 0x01E2, + CHAR_0, + CHAR_1, + CHAR_2, + CHAR_3, + CHAR_4, + CHAR_5, + CHAR_6, + CHAR_7, + CHAR_8, + CHAR_9, + CHAR_A, + CHAR_B, + CHAR_C, + CHAR_D, + CHAR_E, + CHAR_F, + CHAR_G, + CHAR_H, + CHAR_I, + CHAR_J, + CHAR_K, + CHAR_L, + CHAR_M, + CHAR_N, + CHAR_O, + CHAR_P, + CHAR_Q, + CHAR_R, + CHAR_S, + CHAR_T, + CHAR_U, + CHAR_V, + CHAR_W, + CHAR_X, + CHAR_Y, + CHAR_Z, + CHAR_a, + CHAR_b, + CHAR_c, + CHAR_d, + CHAR_e, + CHAR_f, + CHAR_g, + CHAR_h, + CHAR_i, + CHAR_j, + CHAR_k, + CHAR_l, + CHAR_m, + CHAR_n, + CHAR_o, + CHAR_p, + CHAR_q, + CHAR_r, + CHAR_s, + CHAR_t, + CHAR_u, + CHAR_v, + CHAR_w, + CHAR_x, + CHAR_y, + CHAR_z, + CHAR_A_GRAVE, + CHAR_A_ACUTE, + CHAR_A_CIRCUMFLEX, + CHAR_A_TILDE, + CHAR_A_DIERESIS, + CHAR_A_OVERDOT, + CHAR_AE, + CHAR_C_OGONEK, + CHAR_E_GRAVE, + CHAR_E_ACUTE, + CHAR_E_CIRCUMFLEX, + CHAR_E_DIERESIS, + CHAR_I_GRAVE, + CHAR_I_ACUTE, + CHAR_I_CIRCUMFLEX, + CHAR_I_DIERESIS, + CHAR_D_BAR, + CHAR_N_TILDE, + CHAR_O_GRAVE, + CHAR_O_ACUTE, + CHAR_O_CIRCUMFLEX, + CHAR_O_TILDE, + CHAR_O_DIERSIS, + CHAR_MULTIPLY, + CHAR_NULL_SIGN, + CHAR_U_GRAVE, + CHAR_U_ACUTE, + CHAR_U_CIRCUMFLEX, + CHAR_U_DIERESIS, + CHAR_Y_ACUTE, + CHAR_UNK_P_LIKE_THING, + CHAR_ESZETT, + CHAR_a_GRAVE, + CHAR_a_ACUTE, + CHAR_a_CIRCUMFLEX, + CHAR_a_TILDE, + CHAR_a_DIERESIS, + CHAR_a_OVERDOT, + CHAR_ae, + CHAR_c_OGONEK, + CHAR_e_GRAVE, + CHAR_e_ACUTE, + CHAR_e_CIRCUMFLEX, + CHAR_e_DIERESIS, + CHAR_i_GRAVE, + CHAR_i_ACUTE, + CHAR_i_CIRCUMFLEX, + CHAR_i_DIERESIS, + CHAR_d_BAR, + CHAR_n_TILDE, + CHAR_o_GRAVE, + CHAR_o_ACUTE, + CHAR_o_CIRCUMFLEX, + CHAR_o_TILDE, + CHAR_o_DIERSIS, + CHAR_DIVIDE, + CHAR_null_SIGN, + CHAR_u_GRAVE, + CHAR_u_ACUTE, + CHAR_u_CIRCUMFLEX, + CHAR_u_DIERESIS, + CHAR_y_ACUTE, + CHAR_UNK_p_LIKE_THING, + CHAR_y_dieresis, + CHAR_OE, + CHAR_oe, + CHAR_S_OGONEK, + CHAR_s_OGONEK, + CHAR_a_SUPERSCRIPT, + CHAR_o_SUPERSCRIPT, + CHAR_er_SUPERSCRIPT, + CHAR_re_SUPERSCRIPT, + CHAR_r_SUPERSCRIPT, + CHAR_POKEDOLLARS, + CHAR_EXCLAMATION_INVERTED, + CHAR_QUESTION_INVERTED, + CHAR_EXCLAMATION, + CHAR_QUESTION, + CHAR_COMMA, + CHAR_PERIOD, + CHAR_ELLPSIS, + CHAR_DOT, + CHAR_SLASH, + CHAR_SINGLE_QUOTE_OPEN, + CHAR_SINGLE_QUOTE_CLOSE, + CHAR_DOUBLE_QUOTE_OPEN, + CHAR_DOUBLE_QUOTE_CLOSE, + CHAR_DOUBLE_QUOTE_CLOSE_INVERTED, + CHAR_DOUBLE_PAREN_OPEN, + CHAR_DOUBLE_PAREN_CLOSE, + CHAR_PAREN_OPEN, + CHAR_PAREN_CLOSE, + CHAR_MALE, + CHAR_FEMALE, + CHAR_PLUS, + CHAR_MINUS, + CHAR_ASTERISK, + CHAR_HASH, + CHAR_EQUALS, + CHAR_AMPERSAND, + CHAR_TILDE, + CHAR_COLON, + CHAR_SEMICOLON, + CHAR_SPADE, + CHAR_CLUB, + CHAR_HEART, + CHAR_DIAMOND, + CHAR_STAR, + CHAR_DOUBLE_CIRCLE, + CHAR_CIRCLE, + CHAR_SQUARE, + CHAR_TRIANGLE, + CHAR_DIAMOND_OPEN, + CHAR_AT_SIGN, + CHAR_EIGHT_NOTE, + CHAR_PERCENT, + CHAR_SUN, + CHAR_CLOUD, + CHAR_UMBRELLA, + CHAR_SILHOUETTE, + CHAR_EMOTE_SMILE, + CHAR_EMOTE_LAUGH, + CHAR_EMOTE_UPSET, + CHAR_EMOTE_FROWN, + CHAR_ARROW_CURVE_UP, + CHAR_ARROW_CURVE_DOWN, + CHAR_ZZZ, + CHAR_SPACE, + CHAR_e_SUPERSCRIPT, + CHAR_PK, + CHAR_MN, + CHAR_NUM_SPACE, + CHAR_SPACE_1px, + CHAR_SPACE_2px, + CHAR_SPACE_4px, + CHAR_SPACE_8px, + CHAR_SPACE_16px, + CHAR_DEGREES, + CHAR_UNDERSCORE, + CHAR_WIDE_UNDERSCORE, CHAR_CONTROL_SCREEN_INDICATOR = 0x0200, CHAR_CONTROL_PAUSE, diff --git a/include/constants/field/window.h b/include/constants/field/window.h new file mode 100644 index 0000000000..23a8970803 --- /dev/null +++ b/include/constants/field/window.h @@ -0,0 +1,7 @@ +#ifndef POKEPLATINUM_CONSTANTS_FIELD_WINDOW_H +#define POKEPLATINUM_CONSTANTS_FIELD_WINDOW_H + +#define FIELD_WINDOW_PALETTE_INDEX 11 +#define FIELD_MESSAGE_PALETTE_INDEX 13 + +#endif // POKEPLATINUM_CONSTANTS_FIELD_WINDOW_H diff --git a/include/constants/heap.h b/include/constants/heap.h index 21df8c8689..6d5d52400f 100644 --- a/include/constants/heap.h +++ b/include/constants/heap.h @@ -16,6 +16,8 @@ enum HeapId { HEAP_ID_DISTORTION_WORLD_WARP = 30, + HEAP_ID_OPTIONS_MENU = 38, + HEAP_ID_CHOOSE_STARTER_APP = 47, HEAP_ID_LIBRARY_TV = 120, diff --git a/include/core_sys.h b/include/core_sys.h index 621193fa70..32ed51146f 100644 --- a/include/core_sys.h +++ b/include/core_sys.h @@ -14,9 +14,10 @@ enum ButtonMode { BUTTON_MODE_L_IS_A = 3, }; -#define PAD_KEY (PAD_KEY_UP | PAD_KEY_DOWN | PAD_KEY_LEFT | PAD_KEY_RIGHT) -#define JOY_NEW(buttons) (gCoreSys.pressedKeys & (buttons)) -#define JOY_HELD(buttons) (gCoreSys.heldKeys & (buttons)) +#define PAD_KEY (PAD_KEY_UP | PAD_KEY_DOWN | PAD_KEY_LEFT | PAD_KEY_RIGHT) +#define JOY_NEW(buttons) (gCoreSys.pressedKeys & (buttons)) +#define JOY_HELD(buttons) (gCoreSys.heldKeys & (buttons)) +#define JOY_REPEAT(buttons) (gCoreSys.pressedKeysRepeatable & (buttons)) typedef struct CoreSys { Callback mainCallback; diff --git a/include/field/field_system.h b/include/field/field_system.h index 29dee85ca4..6bc02f79aa 100644 --- a/include/field/field_system.h +++ b/include/field/field_system.h @@ -49,9 +49,9 @@ typedef struct FieldSystem_t { FieldSystem_sub1 *unk_00; FieldSystem_sub2 *unk_04; - BgConfig *unk_08; + BgConfig *bgConfig; SaveData *saveData; - TaskManager *unk_10; + TaskManager *taskManager; MapHeaderData *mapHeaderData; int bottomScreen; Location *location; diff --git a/include/list_menu.h b/include/list_menu.h new file mode 100644 index 0000000000..b2b90f996a --- /dev/null +++ b/include/list_menu.h @@ -0,0 +1,111 @@ +#ifndef POKEPLATINUM_LIST_MENU_H +#define POKEPLATINUM_LIST_MENU_H + +#include "bg_window.h" +#include "colored_arrow.h" +#include "string_list.h" + +#define LIST_NOTHING_CHOSEN -1 +#define LIST_CANCEL -2 +#define LIST_HEADER -3 + +enum ListMenuPagerMode { + PAGER_MODE_NONE = 0, + PAGER_MODE_LEFT_RIGHT_PAD, + PAGER_MODE_SHOULDER_BUTTONS, +}; + +enum ListMenuAction { + LIST_MENU_ACTION_NONE = 0, + LIST_MENU_ACTION_MOVE_UP, + LIST_MENU_ACTION_MOVE_DOWN, + LIST_MENU_ACTION_PAGE_UP, + LIST_MENU_ACTION_PAGE_DOWN, +}; + +enum ListMenuAttribute { + LIST_MENU_CURSOR_CALLBACK = 0, + LIST_MENU_PRINT_CALLBACK, + LIST_MENU_COUNT, + LIST_MENU_MAX_DISPLAY, + LIST_MENU_UNUSED_4, + LIST_MENU_HEADER_X_OFFSET, + LIST_MENU_TEXT_X_OFFSET, + LIST_MENU_CURSOR_X_OFFSET, + LIST_MENU_Y_OFFSET, + LIST_MENU_LINE_HEIGHT, + LIST_MENU_TEXT_COLOR_FG, + LIST_MENU_TEXT_COLOR_BG, + LIST_MENU_TEXT_COLOR_SHADOW, + LIST_MENU_LETTER_SPACING, + LIST_MENU_LINE_SPACING, + LIST_MENU_PAGER_MODE, + LIST_MENU_FONT_ID, + LIST_MENU_CURSOR_TYPE, + LIST_MENU_WINDOW, + LIST_MENU_TMP, +}; + +typedef struct ListMenu ListMenu; + +typedef void (*CursorCallback)(ListMenu *menu, u32 index, u8 onInit); +typedef void (*PrintCallback)(ListMenu *menu, u32 index, u8 yOffset); + +typedef struct ListMenuTemplate { + const StringList *choices; + CursorCallback cursorCallback; + PrintCallback printCallback; + Window *window; + u16 count; + u16 maxDisplay; + u8 headerXOffset; + u8 textXOffset; + u8 cursorXOffset; + u8 yOffset : 4; + u8 textColorFg : 4; + u8 textColorBg : 4; + u8 textColorShadow : 4; + u16 letterSpacing : 3; + u16 lineSpacing : 4; + u16 pagerMode : 2; + u16 fontID : 6; + u16 cursorType : 1; + void *tmp; +} ListMenuTemplate; + +struct ListMenu { + ListMenuTemplate template; + struct { + u8 textColorFg : 4; + u8 textColorBg : 4; + u8 textColorShadow : 4; + u8 letterSpacing : 6; + u8 dummy : 6; + u8 fontID : 7; + u8 prefer : 1; + } altFont; + ColoredArrow *cursor; + u16 listPos; + u16 cursorPos; + u8 dummy2C; + u8 dummy2D; + u8 dummy2E; + u8 lastAction; + u8 heapID; +}; + +ListMenu *ListMenu_New(const ListMenuTemplate *template, u16 startListPos, u16 startCursorPos, u8 heapID); +u32 ListMenu_ProcessInput(ListMenu *menu); +void ListMenu_Free(ListMenu *menu, u16 *outListPos, u16 *outCursorPos); +void ListMenu_Draw(ListMenu *menu); +void ListMenu_SetTextColors(ListMenu *menu, u8 fg, u8 bg, u8 shadow); +u32 ListMenu_TestInput(ListMenu *menu, ListMenuTemplate *template, u16 listPos, u16 cursorPos, u16 updateCursor, u16 input, u16 *outListPos, u16 *outCursorPos); +void ListMenu_SetAltTextColors(ListMenu *menu, u8 fg, u8 bg, u8 shadow); +void ListMenu_CalcTrueCursorPos(ListMenu *menu, u16 *outPos); +void ListMenu_GetListAndCursorPos(ListMenu *menu, u16 *outListPos, u16 *outCursorPos); +u8 ListMenu_GetLastAction(ListMenu *menu); +u32 ListMenu_GetIndexOfChoice(ListMenu *menu, u16 choice); +u32 ListMenu_GetAttribute(ListMenu *menu, u8 attribute); +void ListMenu_SetChoices(ListMenu *menu, StringList *choices); + +#endif // POKEPLATINUM_LIST_MENU_H diff --git a/include/menu.h b/include/menu.h new file mode 100644 index 0000000000..44dfa751e2 --- /dev/null +++ b/include/menu.h @@ -0,0 +1,71 @@ +#ifndef POKEPLATINUM_MENU_H +#define POKEPLATINUM_MENU_H + +#include "bg_window.h" +#include "colored_arrow.h" +#include "string_list.h" + +#define MENU_NOTHING_CHOSEN -1 +#define MENU_CANCELED -2 +#define MENU_DUMMY -3 + +enum MenuAction { + MENU_ACTION_NONE = 0, + MENU_ACTION_MOVE_UP, + MENU_ACTION_MOVE_DOWN, + MENU_ACTION_MOVE_LEFT, + MENU_ACTION_MOVE_RIGHT, +}; + +enum MenuExternalInput { + MENU_INPUT_CONFIRM = 0, + MENU_INPUT_CANCEL, + MENU_INPUT_MOVE_UP, + MENU_INPUT_MOVE_DOWN, + MENU_INPUT_MOVE_LEFT, + MENU_INPUT_MOVE_RIGHT, +}; + +typedef struct MenuTemplate { + StringList *choices; + Window *window; + u8 fontID; + u8 xSize; + u8 ySize; + u8 lineSpacing : 4; + u8 suppressCursor : 2; + u8 loopAround : 2; +} MenuTemplate; + +typedef struct Menu { + MenuTemplate template; + ColoredArrow *cursor; + u32 cancelKeys; + u8 dummy14; + u8 cursorPos; + u8 width; + u8 xOffset; + u8 yOffset; + u8 letterWidth; + u8 lineHeight; + u8 lastAction; + u8 heapID; +} Menu; + +Menu *Menu_New(const MenuTemplate *template, u8 xOffset, u8 yOffset, u8 cursorStart, u8 heapID, u32 cancelKeys); +Menu *Menu_NewAndCopyToVRAM(const MenuTemplate *template, u8 xOffset, u8 yOffset, u8 cursorStart, u8 heapID, u32 cancelKeys); +Menu *Menu_NewSimple(const MenuTemplate *template, u8 cursorStart, u8 heapID); +void Menu_Free(Menu *menu, u8 *outCursorPos); +u32 Menu_ProcessInput(Menu *menu); +u32 Menu_ProcessInputWithSound(Menu *menu, u16 sdatID); +u32 Menu_ProcessExternalInput(Menu *menu, u8 input); +u8 Menu_GetCursorPos(Menu *menu); +u8 Menu_GetLastAction(Menu *menu); +Menu *Menu_MakeYesNoChoiceWithCursorAt(BgConfig *bgConfig, const WindowTemplate *winTemplate, u16 borderTileStart, u8 borderPalette, u8 cursorStart, u32 heapID); +Menu *Menu_MakeYesNoChoice(BgConfig *bgConfig, const WindowTemplate *winTemplate, u16 borderTileStart, u8 borderPalette, u32 heapID); +u32 Menu_ProcessInputAndHandleExit(Menu *menu, u32 heapID); +u32 Menu_ProcessExternalInputAndHandleExit(Menu *menu, u8 input, u32 heapID); +void Menu_DestroyForExit(Menu *menu, u32 heapID); +void Window_DrawMenuCursor(Window *window, u32 x, u32 y); + +#endif // POKEPLATINUM_MENU_H diff --git a/include/overlay005/ov5_021E1D20.h b/include/overlay005/ov5_021E1D20.h deleted file mode 100644 index 5383a20af4..0000000000 --- a/include/overlay005/ov5_021E1D20.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef POKEPLATINUM_OV5_021E1D20_H -#define POKEPLATINUM_OV5_021E1D20_H - -#include "field/field_system_decl.h" -#include "overlay005/struct_ov5_021E1FF4_decl.h" - -void ov5_021E1F04(UnkStruct_ov5_021E1FF4 *param0); -void ov5_021E1F7C(UnkStruct_ov5_021E1FF4 *param0); -UnkStruct_ov5_021E1FF4 *ov5_021E1F98(FieldSystem *fieldSystem, int param1, u8 param2); -void ov5_021E1FF4(UnkStruct_ov5_021E1FF4 *param0); -BOOL ov5_021E200C(FieldSystem *fieldSystem); -void ov5_021E2064(FieldSystem *fieldSystem); - -#endif // POKEPLATINUM_OV5_021E1D20_H diff --git a/include/overlay005/ov5_021EA714.h b/include/overlay005/ov5_021EA714.h index 4f9cb7146e..9e88c48d42 100644 --- a/include/overlay005/ov5_021EA714.h +++ b/include/overlay005/ov5_021EA714.h @@ -2,8 +2,9 @@ #define POKEPLATINUM_OV5_021EA714_H #include "field/field_system_decl.h" +#include "overlay025/poketch_system.h" -void ov5_021EA714(FieldSystem *fieldSystem, int param1, u32 param2); +void ov5_021EA714(FieldSystem *fieldSystem, enum PoketchEventID eventID, u32 dummy); void ov5_021EA728(FieldSystem *fieldSystem); void ov5_021EA790(FieldSystem *fieldSystem); u8 ov5_021EA7CC(FieldSystem *fieldSystem); diff --git a/include/overlay005/save_info_window.h b/include/overlay005/save_info_window.h new file mode 100644 index 0000000000..cb74117b1b --- /dev/null +++ b/include/overlay005/save_info_window.h @@ -0,0 +1,58 @@ +#ifndef POKEPLATINUM_SAVE_INFO_WINDOW_H +#define POKEPLATINUM_SAVE_INFO_WINDOW_H + +#include "field/field_system.h" + +#include "bg_window.h" +#include "heap.h" +#include "message.h" +#include "play_time.h" +#include "string_template.h" +#include "trainer_info.h" + +enum SaveInfoText { + SAVE_INFO_LABEL_MAP_NAME, + SAVE_INFO_LABEL_PLAYER_NAME, + SAVE_INFO_LABEL_BADGE_COUNT, + SAVE_INFO_LABEL_POKEDEX_COUNT, + SAVE_INFO_LABEL_PLAY_TIME, + SAVE_INFO_PLAYER_NAME, + SAVE_INFO_BADGE_COUNT, + SAVE_INFO_POKEDEX_COUNT, + SAVE_INFO_PLAY_TIME, +}; + +#define SAVE_INFO_WINDOW_WIDTH 13 +#define SAVE_INFO_WINDOW_HEIGHT 10 + +#define SAVE_INFO_MESSAGE_BASE_TILE 0x189 +#define SAVE_INFO_WINDOW_BASE_TILE 0x3D9 + +typedef struct SaveInfo { + int pokedexCount; + int mapLabelTextID; + TrainerInfo *trainerInfo; + PlayTime *playTime; +} SaveInfo; + +typedef struct SaveInfoWindow { + FieldSystem *fieldSystem; + enum HeapId heapID; + u8 bgLayer; + BgConfig *bgConfig; + Window *window; + StringTemplate *strTemplate; + MessageLoader *msgLoader; + SaveInfo saveInfo; + int width; + int height; +} SaveInfoWindow; + +void SaveInfoWindow_Draw(SaveInfoWindow *saveInfoWin); +void SaveInfoWindow_Erase(SaveInfoWindow *saveInfoWin); +SaveInfoWindow *SaveInfoWindow_New(FieldSystem *fieldSystem, enum HeapId heapID, u8 bgLayer); +void SaveInfoWindow_Free(SaveInfoWindow *saveInfoWin); +BOOL FieldSystem_Save(FieldSystem *fieldSystem); +void FieldSystem_SaveStateIfCommunicationOff(FieldSystem *fieldSystem); + +#endif // POKEPLATINUM_SAVE_INFO_WINDOW_H diff --git a/include/overlay005/struct_ov5_021E1FF4_decl.h b/include/overlay005/struct_ov5_021E1FF4_decl.h deleted file mode 100644 index 70fc8ad2fa..0000000000 --- a/include/overlay005/struct_ov5_021E1FF4_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV5_021E1FF4_DECL_H -#define POKEPLATINUM_STRUCT_OV5_021E1FF4_DECL_H - -typedef struct UnkStruct_ov5_021E1FF4_t UnkStruct_ov5_021E1FF4; - -#endif // POKEPLATINUM_STRUCT_OV5_021E1FF4_DECL_H diff --git a/include/overlay007/struct_ov7_0224D008.h b/include/overlay007/struct_ov7_0224D008.h index 33b2738d7c..d89e0b7ccc 100644 --- a/include/overlay007/struct_ov7_0224D008.h +++ b/include/overlay007/struct_ov7_0224D008.h @@ -1,10 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_OV7_0224D008_H #define POKEPLATINUM_STRUCT_OV7_0224D008_H -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "overlay005/struct_ov5_021D30A8.h" @@ -14,9 +11,12 @@ #include "game_options.h" #include "game_records.h" #include "journal.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "trainer_info.h" #include "vars_flags.h" @@ -26,10 +26,10 @@ typedef struct { void *unk_04; Window unk_08[6]; Window unk_68; - BmpList *unk_78; - ResourceMetadata *unk_7C; - UIControlData *unk_80; - ResourceMetadata *unk_84; + ListMenu *unk_78; + StringList *unk_7C; + Menu *unk_80; + StringList *unk_84; MessageLoader *unk_88; StringTemplate *unk_8C; Camera *camera; diff --git a/include/overlay023/funcptr_ov23_022515D8.h b/include/overlay023/funcptr_ov23_022515D8.h index 60675182d7..024e4ce6af 100644 --- a/include/overlay023/funcptr_ov23_022515D8.h +++ b/include/overlay023/funcptr_ov23_022515D8.h @@ -1,8 +1,8 @@ #ifndef POKEPLATINUM_FUNCPTR_OV23_022515D8_H #define POKEPLATINUM_FUNCPTR_OV23_022515D8_H -#include "struct_decls/struct_0200112C_decl.h" +#include "list_menu.h" -typedef void (*UnkFuncPtr_ov23_022515D8)(BmpList *, u32, u8); +typedef void (*UnkFuncPtr_ov23_022515D8)(ListMenu *, u32, u8); #endif // POKEPLATINUM_FUNCPTR_OV23_022515D8_H diff --git a/include/overlay023/ov23_02248C08.h b/include/overlay023/ov23_02248C08.h index 964bf27044..7fcbd81a61 100644 --- a/include/overlay023/ov23_02248C08.h +++ b/include/overlay023/ov23_02248C08.h @@ -5,9 +5,10 @@ #include "overlay023/funcptr_ov23_02248D20.h" #include "overlay023/struct_ov23_02248D20.h" -#include "overlay084/struct_ov84_02240FA8.h" -UnkStruct_ov23_02248D20 *ov23_02248C08(UnkStruct_ov84_02240FA8 *param0, u16 param1, u16 param2, u8 param3, UnkFuncPtr_ov23_02248D20 param4, UndergroundData *param5, BOOL param6); +#include "list_menu.h" + +UnkStruct_ov23_02248D20 *ov23_02248C08(ListMenuTemplate *param0, u16 param1, u16 param2, u8 param3, UnkFuncPtr_ov23_02248D20 param4, UndergroundData *param5, BOOL param6); u32 ov23_02248D20(UnkStruct_ov23_02248D20 *param0); void ov23_02248EF8(UnkStruct_ov23_02248D20 *param0, u16 *param1, u16 *param2); diff --git a/include/overlay023/ov23_0224F294.h b/include/overlay023/ov23_0224F294.h index 8c6033af69..a90c0845fd 100644 --- a/include/overlay023/ov23_0224F294.h +++ b/include/overlay023/ov23_0224F294.h @@ -1,13 +1,13 @@ #ifndef POKEPLATINUM_OV23_0224F294_H #define POKEPLATINUM_OV23_0224F294_H -#include "struct_decls/struct_0200112C_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "field/field_system_decl.h" #include "overlay023/funcptr_ov23_0224F758.h" #include "overlay023/struct_ov23_02250CD4.h" +#include "list_menu.h" #include "sys_task_manager.h" void ov23_0224F588(UndergroundData *param0); @@ -26,16 +26,16 @@ BOOL ov23_0224F744(int param0); void ov23_0224F758(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem); void ov23_0224FB7C(UnkStruct_ov23_02250CD4 *param0); void ov23_0224FD68(int param0); -void ov23_0224FD84(BmpList *param0, u32 param1, u8 param2); +void ov23_0224FD84(ListMenu *param0, u32 param1, u8 param2); void ov23_0224FDBC(UnkStruct_ov23_02250CD4 *param0); void ov23_0224FDE0(UnkStruct_ov23_02250CD4 *param0); void ov23_02250128(int param0); void ov23_02250184(UnkStruct_ov23_02250CD4 *param0); -void ov23_02250540(BmpList *param0, u32 param1, u8 param2); +void ov23_02250540(ListMenu *param0, u32 param1, u8 param2); void ov23_02250578(UnkStruct_ov23_02250CD4 *param0); void ov23_02250598(UnkStruct_ov23_02250CD4 *param0); void ov23_02250A50(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem); -void ov23_02250C3C(BmpList *param0, u32 param1, u8 param2); +void ov23_02250C3C(ListMenu *param0, u32 param1, u8 param2); void ov23_02250CB0(UnkStruct_ov23_02250CD4 *param0); void ov23_02250CD4(UnkStruct_ov23_02250CD4 *param0); void ov23_02250D2C(UnkStruct_ov23_02250CD4 *param0); diff --git a/include/overlay023/ov23_02253D40.h b/include/overlay023/ov23_02253D40.h index be8b219834..6bcdde13c4 100644 --- a/include/overlay023/ov23_02253D40.h +++ b/include/overlay023/ov23_02253D40.h @@ -3,13 +3,13 @@ #include "overlay023/struct_ov23_02253E2C_decl.h" #include "overlay023/struct_ov23_02253F60.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" +#include "list_menu.h" #include "message.h" #include "trainer_info.h" -const UnkStruct_ov84_02240FA8 *ov23_02253D40(void); +const ListMenuTemplate *ov23_02253D40(void); UnkStruct_ov23_02253E2C *ov23_02253D48(int param0, int param1, BgConfig *param2, int param3, int param4); void ov23_02253DD8(UnkStruct_ov23_02253E2C *param0); void ov23_02253DFC(UnkStruct_ov23_02253E2C *param0, int param1, int param2); diff --git a/include/overlay023/struct_ov23_02248D20.h b/include/overlay023/struct_ov23_02248D20.h index 557f3d020e..38850876f3 100644 --- a/include/overlay023/struct_ov23_02248D20.h +++ b/include/overlay023/struct_ov23_02248D20.h @@ -1,19 +1,19 @@ #ifndef POKEPLATINUM_STRUCT_OV23_02248D20_H #define POKEPLATINUM_STRUCT_OV23_02248D20_H -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "overlay023/funcptr_ov23_02248D20.h" #include "colored_arrow.h" +#include "list_menu.h" +#include "string_list.h" typedef struct { UnkFuncPtr_ov23_02248D20 unk_00; UndergroundData *unk_04; - ResourceMetadata *unk_08; - BmpList *unk_0C; + StringList *unk_08; + ListMenu *unk_0C; ColoredArrow *unk_10; u16 unk_14; u16 unk_16; diff --git a/include/overlay023/struct_ov23_02250CD4.h b/include/overlay023/struct_ov23_02250CD4.h index d4695f4f2e..0200093de0 100644 --- a/include/overlay023/struct_ov23_02250CD4.h +++ b/include/overlay023/struct_ov23_02250CD4.h @@ -2,9 +2,6 @@ #define POKEPLATINUM_STRUCT_OV23_02250CD4_H #include "struct_decls/cell_actor_data.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/struct_0206A844.h" #include "field/field_system_decl.h" @@ -17,7 +14,10 @@ #include "overlay023/struct_ov23_02248D20.h" #include "bg_window.h" +#include "list_menu.h" +#include "menu.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task_manager.h" @@ -29,14 +29,14 @@ typedef struct { Window unk_10; Window unk_20; Window unk_30; - ResourceMetadata *unk_40; - ResourceMetadata *unk_44; - BmpList *unk_48; + StringList *unk_40; + StringList *unk_44; + ListMenu *unk_48; UnkStruct_ov23_02248D20 *unk_4C; - BmpList *unk_50; - UIControlData *unk_54; - ResourceMetadata *unk_58; - UIControlData *unk_5C; + ListMenu *unk_50; + Menu *unk_54; + StringList *unk_58; + Menu *unk_5C; UnkFuncPtr_ov23_022515D8 unk_60; UnkFuncPtr_ov23_022515D8 unk_64; Strbuf *unk_68; diff --git a/include/overlay065/struct_ov65_0222EBE0_t.h b/include/overlay065/struct_ov65_0222EBE0_t.h index 25db2c5f9e..053985bb13 100644 --- a/include/overlay065/struct_ov65_0222EBE0_t.h +++ b/include/overlay065/struct_ov65_0222EBE0_t.h @@ -1,10 +1,7 @@ #ifndef POKEPLATINUM_STRUCT_OV65_0222EBE0_T_H #define POKEPLATINUM_STRUCT_OV65_0222EBE0_T_H -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02012744_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202B370_decl.h" #include "struct_defs/struct_0200C738.h" #include "struct_defs/struct_0207DFAC.h" @@ -17,11 +14,14 @@ #include "bg_window.h" #include "cell_actor.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "overlay_manager.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "trainer_info.h" struct UnkStruct_ov65_0222EBE0_t { @@ -32,10 +32,10 @@ struct UnkStruct_ov65_0222EBE0_t { u8 unk_2C[32]; int unk_4C[32]; int unk_CC[32]; - ResourceMetadata *unk_14C; - BmpList *unk_150; - ResourceMetadata *unk_154; - BmpList *unk_158; + StringList *unk_14C; + ListMenu *unk_150; + StringList *unk_154; + ListMenu *unk_158; BgConfig *unk_15C; SaveData *unk_160; StringTemplate *unk_164; @@ -46,7 +46,7 @@ struct UnkStruct_ov65_0222EBE0_t { Strbuf *unk_178; Strbuf *unk_17C; int unk_180; - UIControlData *unk_184; + Menu *unk_184; void *unk_188; CellActorCollection *unk_18C; UnkStruct_0200C738 unk_190; diff --git a/include/overlay070/ov70_0225D9A4.h b/include/overlay070/ov70_0225D9A4.h index 7eb56fc060..7f844c6a38 100644 --- a/include/overlay070/ov70_0225D9A4.h +++ b/include/overlay070/ov70_0225D9A4.h @@ -1,8 +1,6 @@ #ifndef POKEPLATINUM_OV70_0225D9A4_H #define POKEPLATINUM_OV70_0225D9A4_H -#include "struct_decls/struct_02013A04_decl.h" - #include "overlay066/struct_ov66_0222DFF8_decl.h" #include "overlay070/struct_ov70_0225C894_decl.h" #include "overlay070/struct_ov70_0225CA20_decl.h" @@ -11,11 +9,12 @@ #include "overlay070/struct_ov70_02261E10_decl.h" #include "overlay070/struct_ov70_022630A4_decl.h" #include "overlay070/struct_ov70_02263910.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "enums.h" +#include "list_menu.h" #include "overlay_manager.h" #include "strbuf.h" +#include "string_list.h" int ov70_0225D9A4(OverlayManager *param0, int *param1); int ov70_0225DB90(OverlayManager *param0, int *param1); @@ -51,10 +50,10 @@ void ov70_0225E00C(UnkStruct_ov70_0225DEE8 *param0, u32 param1); void ov70_0225E020(UnkStruct_ov70_0225DEE8 *param0, u32 param1, u32 param2); void ov70_0225E034(UnkStruct_ov70_0225DEE8 *param0); void ov70_0225E044(UnkStruct_ov70_0225DEE8 *param0, const Strbuf *param1, u32 param2); -const ResourceMetadata *ov70_0225E054(const UnkStruct_ov70_0225DEE8 *param0); +const StringList *ov70_0225E054(const UnkStruct_ov70_0225DEE8 *param0); BOOL ov70_0225E064(const UnkStruct_ov70_0225DEE8 *param0, u32 param1); -void ov70_0225E074(UnkStruct_ov70_0225DEE8 *param0, const UnkStruct_ov84_02240FA8 *param1, u16 param2, u16 param3); -void ov70_0225E0A4(UnkStruct_ov70_0225DEE8 *param0, const UnkStruct_ov84_02240FA8 *param1, u16 param2, u16 param3, u8 param4, u8 param5, u8 param6); +void ov70_0225E074(UnkStruct_ov70_0225DEE8 *param0, const ListMenuTemplate *param1, u16 param2, u16 param3); +void ov70_0225E0A4(UnkStruct_ov70_0225DEE8 *param0, const ListMenuTemplate *param1, u16 param2, u16 param3, u8 param4, u8 param5, u8 param6); u32 ov70_0225E0D4(UnkStruct_ov70_0225DEE8 *param0); void ov70_0225E0E4(UnkStruct_ov70_0225DEE8 *param0, u16 *param1, u16 *param2); void ov70_0225E0F4(UnkStruct_ov70_0225DEE8 *param0, BOOL param1); diff --git a/include/overlay074/ov74_021D0D80.h b/include/overlay074/ov74_021D0D80.h deleted file mode 100644 index c8e099ff41..0000000000 --- a/include/overlay074/ov74_021D0D80.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef POKEPLATINUM_OV74_021D0D80_H -#define POKEPLATINUM_OV74_021D0D80_H - -#include "overlay_manager.h" - -int ov74_021D0D80(OverlayManager *param0, int *param1); -int ov74_021D0E58(OverlayManager *param0, int *param1); -int ov74_021D0F60(OverlayManager *param0, int *param1); - -#endif // POKEPLATINUM_OV74_021D0D80_H diff --git a/include/overlay076/struct_ov76_0223C398.h b/include/overlay076/struct_ov76_0223C398.h index a47c5c62e4..b17a75c126 100644 --- a/include/overlay076/struct_ov76_0223C398.h +++ b/include/overlay076/struct_ov76_0223C398.h @@ -4,12 +4,10 @@ #include "struct_decls/font_oam.h" #include "struct_decls/pokemon_animation_sys_decl.h" #include "struct_decls/sprite_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02007768_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" #include "struct_decls/struct_02012744_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02015920_decl.h" #include "struct_decls/struct_02023FCC_decl.h" #include "struct_defs/sprite_manager_allocation.h" @@ -20,7 +18,9 @@ #include "overlay022/struct_ov22_02258A48.h" #include "bg_window.h" +#include "menu.h" #include "palette.h" +#include "string_list.h" #include "touch_screen.h" typedef struct { @@ -31,8 +31,8 @@ typedef struct { BgConfig *unk_10; PaletteData *unk_14; Window unk_18[11]; - ResourceMetadata *unk_C8; - UIControlData *unk_CC; + StringList *unk_C8; + Menu *unk_CC; UnkStruct_02007768 *unk_D0; Sprite *unk_D4; int unk_D8; diff --git a/include/overlay079/struct_ov79_021D0E1C.h b/include/overlay079/struct_ov79_021D0E1C.h index ae03055ca2..b154865e34 100644 --- a/include/overlay079/struct_ov79_021D0E1C.h +++ b/include/overlay079/struct_ov79_021D0E1C.h @@ -3,22 +3,21 @@ #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/struct_020158A8.h" #include "struct_defs/struct_0203D9B8.h" #include "struct_defs/struct_0209903C.h" #include "struct_defs/struct_0209916C.h" #include "overlay079/struct_ov79_021D0E1C_sub1.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "cell_actor.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" +#include "string_list.h" typedef struct UnkStruct_ov79_021D0E1C_t { int unk_00; @@ -42,13 +41,13 @@ typedef struct UnkStruct_ov79_021D0E1C_t { UnkStruct_ov79_021D0E1C_sub1 unk_30; u16 unk_80; u16 unk_82; - UnkStruct_ov84_02240FA8 unk_84; - UnkStruct_ov84_02240FA8 unk_A4; - BmpList *unk_C4; - BmpList *unk_C8; - ResourceMetadata *unk_CC; - ResourceMetadata *unk_D0; - UIControlData *unk_D4; + ListMenuTemplate unk_84; + ListMenuTemplate unk_A4; + ListMenu *unk_C4; + ListMenu *unk_C8; + StringList *unk_CC; + StringList *unk_D0; + Menu *unk_D4; void *unk_D8; void *unk_DC; NNSG2dScreenData *unk_E0; diff --git a/include/overlay084/struct_ov84_0223B5A0.h b/include/overlay084/struct_ov84_0223B5A0.h index 50f3b638dd..5ff0113586 100644 --- a/include/overlay084/struct_ov84_0223B5A0.h +++ b/include/overlay084/struct_ov84_0223B5A0.h @@ -2,12 +2,9 @@ #define POKEPLATINUM_STRUCT_OV84_0223B5A0_H #include "struct_decls/cell_actor_data.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0207CB08_decl.h" #include "overlay084/struct_ov84_0223B5A0_sub1.h" @@ -16,9 +13,12 @@ #include "bag.h" #include "bg_window.h" #include "game_options.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "trainer_info.h" @@ -40,10 +40,10 @@ typedef struct { MessageLoader *unk_11C; MessageLoader *unk_120; Strbuf *unk_124[12]; - ResourceMetadata *unk_154; - UIControlData *unk_158; - BmpList *unk_15C; - ResourceMetadata *unk_160; + StringList *unk_154; + Menu *unk_158; + ListMenu *unk_15C; + StringList *unk_160; Strbuf *unk_164[165]; Strbuf *unk_3F8; Strbuf *unk_3FC; diff --git a/include/overlay084/struct_ov84_02240FA8.h b/include/overlay084/struct_ov84_02240FA8.h deleted file mode 100644 index 12ea9599ce..0000000000 --- a/include/overlay084/struct_ov84_02240FA8.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV84_02240FA8_H -#define POKEPLATINUM_STRUCT_OV84_02240FA8_H - -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" - -#include "bg_window.h" - -typedef struct { - const ResourceMetadata *unk_00; - void (*unk_04)(BmpList *, u32, u8); - void (*unk_08)(BmpList *, u32, u8); - Window *unk_0C; - u16 unk_10; - u16 unk_12; - u8 unk_14; - u8 unk_15; - u8 unk_16; - u8 unk_17_0 : 4; - u8 unk_17_4 : 4; - u8 unk_18_0 : 4; - u8 unk_18_4 : 4; - u16 unk_1A_0 : 3; - u16 unk_1A_3 : 4; - u16 unk_1A_7 : 2; - u16 unk_1A_9 : 6; - u16 unk_1A_15 : 1; - void *unk_1C; -} UnkStruct_ov84_02240FA8; - -#endif // POKEPLATINUM_STRUCT_OV84_02240FA8_H diff --git a/include/overlay088/ov88_0223E9C4.h b/include/overlay088/ov88_0223E9C4.h index 873e1312d8..c40b96a1f1 100644 --- a/include/overlay088/ov88_0223E9C4.h +++ b/include/overlay088/ov88_0223E9C4.h @@ -1,22 +1,21 @@ #ifndef POKEPLATINUM_OV88_0223E9C4_H #define POKEPLATINUM_OV88_0223E9C4_H -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" - #include "bg_window.h" #include "game_options.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" void ov88_0223E9C4(BgConfig *param0, Window *param1, Options *param2); void ov88_0223EC04(Window *param0); void ov88_0223EC78(Window *param0, Strbuf *param1, int param2, u32 param3, int param4, int param5); int ov88_0223ECBC(Window *param0, int param1, int param2, MessageLoader *param3, StringTemplate *param4); -u32 ov88_0223ED2C(BgConfig *param0, UIControlData **param1, int *param2); +u32 ov88_0223ED2C(BgConfig *param0, Menu **param1, int *param2); void ov88_0223ED80(Window *param0); -BmpList *ov88_0223ED94(ResourceMetadata *param0, int param1, Window *param2, BgConfig *param3); +ListMenu *ov88_0223ED94(StringList *param0, int param1, Window *param2, BgConfig *param3); #endif // POKEPLATINUM_OV88_0223E9C4_H diff --git a/include/overlay094/ov94_0223BCB0.h b/include/overlay094/ov94_0223BCB0.h index a3857cd2f5..ee8e66c7df 100644 --- a/include/overlay094/ov94_0223BCB0.h +++ b/include/overlay094/ov94_0223BCB0.h @@ -1,19 +1,18 @@ #ifndef POKEPLATINUM_OV94_0223BCB0_H #define POKEPLATINUM_OV94_0223BCB0_H -#include "struct_decls/struct_02001AF4_decl.h" - #include "overlay094/struct_ov94_0223FD4C_decl.h" #include "bg_window.h" #include "cell_actor.h" +#include "menu.h" #include "overlay_manager.h" int ov94_0223BCB0(OverlayManager *param0, int *param1); int ov94_0223BE2C(OverlayManager *param0, int *param1); int ov94_0223BF54(OverlayManager *param0, int *param1); void ov94_0223C300(CellActorInitParamsEx *param0, UnkStruct_ov94_0223FD4C *param1, CellActorResourceData *param2, int param3); -UIControlData *ov94_0223C3C0(BgConfig *param0, int param1, int param2); +Menu *ov94_0223C3C0(BgConfig *param0, int param1, int param2); void ov94_0223C3F4(UnkStruct_ov94_0223FD4C *param0, int param1, int param2); void ov94_0223C3FC(CellActor *param0, int param1, int param2); int ov94_0223C4B4(void); diff --git a/include/overlay094/ov94_022414B8.h b/include/overlay094/ov94_022414B8.h index 5625f80d55..6d72f03625 100644 --- a/include/overlay094/ov94_022414B8.h +++ b/include/overlay094/ov94_022414B8.h @@ -2,8 +2,6 @@ #define POKEPLATINUM_OV94_022414B8_H #include "struct_decls/pokedexdata_decl.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "overlay094/struct_ov94_0223BA88.h" #include "overlay094/struct_ov94_0223BA88_sub3.h" @@ -12,7 +10,9 @@ #include "overlay094/struct_ov94_02242AAC.h" #include "bg_window.h" +#include "list_menu.h" #include "message.h" +#include "string_list.h" #include "string_template.h" #include "text.h" @@ -30,15 +30,15 @@ void ov94_02242368(MessageLoader *param0, MessageLoader *param1, StringTemplate u16 *ov94_Pokedex_Alphabetical(int heapID, int unused, int *pokedexLength); u8 *ov94_02242548(int param0); void ov94_022425A8(UnkStruct_ov94_0223BA88 *param0, UnkStruct_ov94_0223FD4C *param1); -BmpList *ov94_022426A8(UnkStruct_ov94_0223FD4C *param0, ResourceMetadata **param1, Window *param2, MessageLoader *param3); -BmpList *ov94_022427C0(UnkStruct_ov94_0223FD4C *param0, ResourceMetadata **param1, Window *param2, MessageLoader *param3, MessageLoader *param4, UnkStruct_ov94_0223FD4C_sub3 *param5, PokedexData *param6); -BmpList *ov94_02242840(ResourceMetadata **param0, Window *param1, MessageLoader *param2); -BmpList *ov94_022428B0(ResourceMetadata **param0, Window *param1, MessageLoader *param2, int param3); +ListMenu *ov94_022426A8(UnkStruct_ov94_0223FD4C *param0, StringList **param1, Window *param2, MessageLoader *param3); +ListMenu *ov94_022427C0(UnkStruct_ov94_0223FD4C *param0, StringList **param1, Window *param2, MessageLoader *param3, MessageLoader *param4, UnkStruct_ov94_0223FD4C_sub3 *param5, PokedexData *param6); +ListMenu *ov94_02242840(StringList **param0, Window *param1, MessageLoader *param2); +ListMenu *ov94_022428B0(StringList **param0, Window *param1, MessageLoader *param2, int param3); void ov94_02242934(UnkStruct_ov94_0223BA88_sub3 *param0, int param1, int param2); int ov94_02242970(int param0, int param1, int param2); -BmpList *ov94_022429B4(ResourceMetadata **param0, Window *param1, MessageLoader *param2, MessageLoader *param3); +ListMenu *ov94_022429B4(StringList **param0, Window *param1, MessageLoader *param2, MessageLoader *param3); void ov94_02242A44(UnkStruct_ov94_0223FD4C *param0, int param1); -u32 ov94_02242A6C(BmpList *param0, u16 *param1); +u32 ov94_02242A6C(ListMenu *param0, u16 *param1); void ov94_02242AAC(UnkStruct_ov94_02242AAC *param0); void ov94_02242AC4(UnkStruct_ov94_02242AAC *param0, int param1, int param2, int param3); diff --git a/include/overlay094/struct_ov94_0223FD4C.h b/include/overlay094/struct_ov94_0223FD4C.h index 88c4256ebd..fd49b44efe 100644 --- a/include/overlay094/struct_ov94_0223FD4C.h +++ b/include/overlay094/struct_ov94_0223FD4C.h @@ -4,9 +4,6 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202B370_decl.h" #include "struct_decls/struct_0207AE68_decl.h" #include "struct_defs/pokemon_summary.h" @@ -27,11 +24,14 @@ #include "bg_window.h" #include "cell_actor.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "overlay_manager.h" #include "pokemon.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task_manager.h" #include "trainer_info.h" @@ -121,10 +121,10 @@ typedef struct UnkStruct_ov94_0223FD4C_t { Window unk_FCC[13]; Window unk_109C; Window unk_10AC[2]; - ResourceMetadata *unk_10CC; - UIControlData *unk_10D0; - UIControlData *unk_10D4; - BmpList *unk_10D8; + StringList *unk_10CC; + Menu *unk_10D0; + Menu *unk_10D4; + ListMenu *unk_10D8; void *unk_10DC; int unk_10E0; UnkStruct_ov94_0223FD4C_sub3 *unk_10E4; diff --git a/include/overlay096/ov96_0223B6A0.h b/include/overlay096/ov96_0223B6A0.h index 0e13ad6279..c34b66b7e2 100644 --- a/include/overlay096/ov96_0223B6A0.h +++ b/include/overlay096/ov96_0223B6A0.h @@ -1,19 +1,18 @@ #ifndef POKEPLATINUM_OV96_0223B6A0_H #define POKEPLATINUM_OV96_0223B6A0_H -#include "struct_decls/struct_02001AF4_decl.h" - #include "overlay096/struct_ov96_0223BF40_decl.h" #include "bg_window.h" #include "cell_actor.h" +#include "menu.h" #include "overlay_manager.h" int ov96_0223B6A0(OverlayManager *param0, int *param1); int ov96_0223B7F8(OverlayManager *param0, int *param1); int ov96_0223B8CC(OverlayManager *param0, int *param1); void ov96_0223BAE0(CellActorInitParamsEx *param0, UnkStruct_ov96_0223BF40 *param1, CellActorResourceData *param2, int param3); -UIControlData *ov96_0223BBC8(BgConfig *param0, int param1, int param2); +Menu *ov96_0223BBC8(BgConfig *param0, int param1, int param2); void ov96_0223BBFC(UnkStruct_ov96_0223BF40 *param0, int param1, int param2); int ov96_0223BC50(void); void ov96_0223BC5C(UnkStruct_ov96_0223BF40 *param0, int param1, int param2); diff --git a/include/overlay096/struct_ov96_0223BF40_t.h b/include/overlay096/struct_ov96_0223BF40_t.h index aef4b72b93..0fe8c7bdc3 100644 --- a/include/overlay096/struct_ov96_0223BF40_t.h +++ b/include/overlay096/struct_ov96_0223BF40_t.h @@ -4,7 +4,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0200C738.h" #include "struct_defs/struct_0206BC70.h" @@ -16,6 +15,7 @@ #include "bg_window.h" #include "cell_actor.h" +#include "menu.h" #include "message.h" #include "pokemon.h" #include "sprite_resource.h" @@ -73,7 +73,7 @@ struct UnkStruct_ov96_0223BF40_t { Window unk_E78; Window unk_E88[3]; Window unk_EB8[11]; - UIControlData *unk_F68; + Menu *unk_F68; void *unk_F6C; int unk_F70; int unk_F74; diff --git a/include/overlay097/ov97_02237694.h b/include/overlay097/ov97_02237694.h index 5d4b6c55d8..cc756d09e8 100644 --- a/include/overlay097/ov97_02237694.h +++ b/include/overlay097/ov97_02237694.h @@ -1,7 +1,6 @@ #ifndef POKEPLATINUM_OV97_02237694_H #define POKEPLATINUM_OV97_02237694_H -#include "struct_decls/struct_0200112C_decl.h" #include "struct_defs/struct_0202DF40.h" #include "overlay097/struct_ov97_02237808.h" @@ -11,6 +10,7 @@ #include "bg_window.h" #include "cell_actor.h" +#include "list_menu.h" #include "overlay_manager.h" #include "savedata.h" @@ -40,7 +40,7 @@ u32 ov97_02237E4C(int param0); void ov97_02238194(BgConfig *param0, UnkStruct_0202DF40 *param1); void ov97_0223829C(UnkStruct_ov97_0223829C *param0, UnkUnion_ov97_0222D2B0 *param1, int param2); void ov97_02238324(UnkStruct_ov97_0223829C *param0, UnkUnion_ov97_0222D2B0 *param1, int param2); -void ov97_022383C4(BmpList *param0, u32 param1, u8 param2); +void ov97_022383C4(ListMenu *param0, u32 param1, u8 param2); void ov97_02238400(BOOL param0); void ov97_02238440(void); void ov97_0223846C(SaveData *param0); diff --git a/include/overlay097/struct_ov97_0222D04C.h b/include/overlay097/struct_ov97_0222D04C.h index 1b642394ea..9a6509e206 100644 --- a/include/overlay097/struct_ov97_0222D04C.h +++ b/include/overlay097/struct_ov97_0222D04C.h @@ -3,8 +3,6 @@ #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/struct_0200C738.h" #include "overlay097/struct_ov97_0223829C.h" @@ -13,10 +11,12 @@ #include "bg_window.h" #include "cell_actor.h" #include "game_options.h" +#include "list_menu.h" #include "message.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" typedef struct { @@ -33,8 +33,8 @@ typedef struct { int unk_6C; int unk_70; int unk_74; - BmpList *unk_78; - ResourceMetadata *unk_7C; + ListMenu *unk_78; + StringList *unk_7C; int unk_80; int unk_84; int unk_88; diff --git a/include/overlay104/struct_ov104_022320B4_t.h b/include/overlay104/struct_ov104_022320B4_t.h index e792f94b4a..2a26d1fc24 100644 --- a/include/overlay104/struct_ov104_022320B4_t.h +++ b/include/overlay104/struct_ov104_022320B4_t.h @@ -1,7 +1,6 @@ #ifndef POKEPLATINUM_STRUCT_OV104_022320B4_T_H #define POKEPLATINUM_STRUCT_OV104_022320B4_T_H -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0209B75C_decl.h" #include "overlay104/struct_ov104_0222E8C8.h" @@ -9,6 +8,7 @@ #include "overlay104/struct_ov104_02232B5C_decl.h" #include "bg_window.h" +#include "menu.h" #include "message.h" #include "strbuf.h" #include "string_template.h" @@ -34,7 +34,7 @@ struct UnkStruct_ov104_022320B4_t { BOOL unk_5C; UnkStruct_ov104_02232B5C *unk_60; Window unk_64; - UIControlData *unk_74; + Menu *unk_74; u16 *unk_78; void *unk_7C; void *unk_80; diff --git a/include/overlay109/struct_ov109_021D5140.h b/include/overlay109/struct_ov109_021D5140.h index 1e794bd49f..e2670778f3 100644 --- a/include/overlay109/struct_ov109_021D5140.h +++ b/include/overlay109/struct_ov109_021D5140.h @@ -3,7 +3,6 @@ #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0209C194_decl.h" #include "struct_defs/struct_0200C738.h" #include "struct_defs/struct_0209BDF8.h" @@ -14,6 +13,7 @@ #include "bg_window.h" #include "cell_actor.h" +#include "menu.h" #include "message.h" #include "sprite_resource.h" #include "strbuf.h" @@ -52,7 +52,7 @@ typedef struct UnkStruct_ov109_021D5140_t { Window unk_36C; Window unk_37C; Window *unk_38C[2]; - UIControlData *unk_394; + Menu *unk_394; void *unk_398[2]; NNSG2dCharacterData *unk_3A0[2]; void *unk_3A8[2]; diff --git a/include/overlay119/struct_ov119_021D17B8.h b/include/overlay119/struct_ov119_021D17B8.h index 8e7fdea9e5..2b6c839f08 100644 --- a/include/overlay119/struct_ov119_021D17B8.h +++ b/include/overlay119/struct_ov119_021D17B8.h @@ -2,18 +2,18 @@ #define POKEPLATINUM_STRUCT_OV119_021D17B8_H #include "struct_decls/pokemon_animation_sys_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02007768_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/struct_0207C690.h" #include "overlay119/struct_ov119_021D14DC.h" #include "bg_window.h" +#include "menu.h" #include "narc.h" #include "palette.h" +#include "string_list.h" typedef struct { BgConfig *unk_00; @@ -26,8 +26,8 @@ typedef struct { UnkStruct_02007768 *unk_38; NARC *unk_3C; UnkStruct_ov119_021D14DC *unk_40; - ResourceMetadata *unk_44; - UIControlData *unk_48; + StringList *unk_44; + Menu *unk_48; SpriteGfxHandler *unk_4C; SpriteRenderer *unk_50; PokemonAnimationSys *unk_54; diff --git a/include/palette.h b/include/palette.h index 89616dcacc..284dbd19c0 100644 --- a/include/palette.h +++ b/include/palette.h @@ -3,6 +3,12 @@ #include "constants/heap.h" +#define SLOTS_PER_PALETTE 16 +#define PALETTE_SIZE (SLOTS_PER_PALETTE) +#define PALETTE_SIZE_EXT (SLOTS_PER_PALETTE * 16) +#define PALETTE_SIZE_BYTES (PALETTE_SIZE * sizeof(u16)) +#define PLTT_OFFSET(i) ((i) * PALETTE_SIZE_BYTES) + enum PaletteBufferID { PLTTBUF_MAIN_BG = 0, PLTTBUF_SUB_BG, diff --git a/include/render_window.h b/include/render_window.h new file mode 100644 index 0000000000..a5b6378537 --- /dev/null +++ b/include/render_window.h @@ -0,0 +1,49 @@ +#ifndef POKEPLATINUM_RENDER_WINDOW_H +#define POKEPLATINUM_RENDER_WINDOW_H + +#include "constants/heap.h" + +#include "bg_window.h" +#include "pokemon.h" + +#define TEXT_WINDOW_SIZE 30 + +enum StandardWindowType { + STANDARD_WINDOW_SYSTEM = 0, + STANDARD_WINDOW_FIELD, + STANDARD_WINDOW_UNDERGROUND, +}; + +enum SignpostType { + SIGNPOST_CITY_MAP = 0, + SIGNPOST_ROUTE_MAP, + SIGNPOST_BUILDING_INFO, + SIGNPOST_FIELD_INFO, +}; + +void LoadStandardWindowTiles(BgConfig *bgConfig, u8 bgLayer, u16 offset, u8 standardWindowType, u32 heapID); +u32 GetStandardWindowPaletteNARCMember(void); +void LoadStandardWindowGraphics(BgConfig *bgConfig, u8 bgLayer, u16 tileOffset, u8 palOffset, u8 standardWindowType, u32 heapID); +void Window_DrawStandardFrame(Window *window, u8 skipTransfer, u16 tile, u8 palette); +void Window_EraseStandardFrame(Window *window, u8 skipTransfer); + +u32 GetMessageBoxTilesNARCMember(u32 messageBoxFrame); +u32 GetMessageBoxPaletteNARCMember(u32 messageBoxFrame); +void LoadMessageBoxGraphics(BgConfig *bgConfig, u8 bgLayer, u16 tileOffset, u8 palOffset, u8 messageBoxFrame, u32 heapID); +void Window_DrawMessageBox(Window *window, u32 tile, u32 palette); +void Window_DrawMessageBoxWithScrollCursor(Window *window, u8 skipTransfer, u16 tile, u8 palette); +void Window_EraseMessageBox(Window *window, u8 skipTransfer); +void ReplaceTransparentTiles(BgConfig *bgConfig, u8 bgLayer, u16 bgBaseTile, u8 withTile, u8 messageBoxFrame, u32 heapID); + +void LoadSignpostContentGraphics(BgConfig *bgConfig, u8 bgLayer, u16 baseTile, u8 palette, u8 signpostType, u16 signpostNARCMemberIdx, u32 heapID); +void Window_DrawSignpost(Window *window, u8 skipTransfer, u16 baseTile, u8 palette, u8 signpostType); +void Window_EraseSignpost(Window *window, u8 signpostType, u8 skipTransfer); + +void *Window_AddWaitDial(Window *window, u32 baseTile); +void DestroyWaitDial(void *taskData); +void DestroyWaitDialTaskOnly(void *taskData); + +u8 *DrawPokemonPreview(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 palette, u16 baseTile, u16 species, u8 gender, enum HeapId heapID); +u8 *DrawPokemonPreviewFromStruct(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 palette, u16 baseTile, Pokemon *mon, enum HeapId heapID); + +#endif // POKEPLATINUM_RENDER_WINDOW_H diff --git a/include/script_manager.h b/include/script_manager.h index 4e553c13e0..e9d876d12a 100644 --- a/include/script_manager.h +++ b/include/script_manager.h @@ -1,18 +1,18 @@ #ifndef POKEPLATINUM_SCRIPT_MANAGER_H #define POKEPLATINUM_SCRIPT_MANAGER_H -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_decls/struct_02061AB4_decl.h" #include "struct_defs/struct_0203F478.h" #include "field/field_system_decl.h" +#include "overlay005/save_info_window.h" #include "overlay005/struct_ov5_021DC1A4_decl.h" -#include "overlay005/struct_ov5_021E1FF4_decl.h" #include "overlay101/struct_ov101_021D5D90_decl.h" #include "bg_window.h" #include "field_script_context.h" +#include "menu.h" #include "string_template.h" #include "sys_task_manager.h" @@ -56,8 +56,8 @@ enum ScriptManagerMember { SCRIPT_MANAGER_TRAINER_1_TASK, SCRIPT_MANAGER_COIN_WINDOW, SCRIPT_MANAGER_MONEY_WINDOW, - - SCRIPT_DATA_START = 41, + SCRIPT_MANAGER_SAVE_INFO_WINDOW, + SCRIPT_DATA_START, SCRIPT_DATA_PARAMETER_0 = SCRIPT_DATA_START, // used for storing the mon's party slot when you use a field move, the item ID for hidden items, and steps for the PokeRadar SCRIPT_DATA_PARAMETER_1, // used for storing hidden item quantities. SCRIPT_DATA_PARAMETER_2, // used for storing hidden item quantities and flags respectively. @@ -117,7 +117,7 @@ typedef struct ScriptManager { BOOL battleResult; UnkStruct_ov5_021DC1A4 *unk_10; // appears to be used for multichoice windows Window window; - UIControlData *ctrlUI; + Menu *ctrlUI; int playerDir; MapObject *targetObject; MapObject *cameraObject; @@ -136,7 +136,7 @@ typedef struct ScriptManager { SysTask *playerTask; // used to set player sprite animations while saving Window coinWindow; Window moneyWindow; - UnkStruct_ov5_021E1FF4 *unk_D8; + SaveInfoWindow *saveInfoWin; } ScriptManager; void ScriptManager_Set(FieldSystem *fieldSystem, u16 scriptID, MapObject *object); diff --git a/include/string_list.h b/include/string_list.h new file mode 100644 index 0000000000..adbc29a26a --- /dev/null +++ b/include/string_list.h @@ -0,0 +1,20 @@ +#ifndef POKEPLATINUM_STRING_LIST_H +#define POKEPLATINUM_STRING_LIST_H + +#include "message.h" +#include "strbuf.h" + +#define STRING_LIST_TERMINATOR ((void *)0xFFFFFFFF) + +typedef struct StringList { + void *entry; + u32 index; +} StringList; + +StringList *StringList_New(u32 capacity, u32 heapID); +void StringList_Free(StringList *list); +void StringList_AddFromMessageBank(StringList *list, const MessageLoader *loader, u32 bankEntry, u32 index); +void StringList_AddFromStrbuf(StringList *list, const Strbuf *strbuf, u32 index); +void StringList_AddFromEntry(StringList *list, const StringList *entry); + +#endif // POKEPLATINUM_STRING_LIST_H diff --git a/include/struct_decls/struct_0200112C_decl.h b/include/struct_decls/struct_0200112C_decl.h deleted file mode 100644 index bac2ba9497..0000000000 --- a/include/struct_decls/struct_0200112C_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0200112C_DECL_H -#define POKEPLATINUM_STRUCT_0200112C_DECL_H - -typedef struct UnkStruct_0200112C_t BmpList; - -#endif // POKEPLATINUM_STRUCT_0200112C_DECL_H diff --git a/include/struct_decls/struct_02001AF4_decl.h b/include/struct_decls/struct_02001AF4_decl.h deleted file mode 100644 index aed2194813..0000000000 --- a/include/struct_decls/struct_02001AF4_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02001AF4_DECL_H -#define POKEPLATINUM_STRUCT_02001AF4_DECL_H - -typedef struct UIControlData_t UIControlData; - -#endif // POKEPLATINUM_STRUCT_02001AF4_DECL_H diff --git a/include/struct_decls/struct_02013A04_decl.h b/include/struct_decls/struct_02013A04_decl.h deleted file mode 100644 index 90fa4c17f0..0000000000 --- a/include/struct_decls/struct_02013A04_decl.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02013A04_DECL_H -#define POKEPLATINUM_STRUCT_02013A04_DECL_H -#include "struct_defs/struct_02013A04_t.h" - -typedef struct ResourceMetadata_t ResourceMetadata; - -#endif // POKEPLATINUM_STRUCT_02013A04_DECL_H diff --git a/include/struct_defs/struct_02013A04_t.h b/include/struct_defs/struct_02013A04_t.h deleted file mode 100644 index c777835b5b..0000000000 --- a/include/struct_defs/struct_02013A04_t.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02013A04_T_H -#define POKEPLATINUM_STRUCT_02013A04_T_H - -struct ResourceMetadata_t { - const void *unk_00; - u32 unk_04; -}; - -#endif // POKEPLATINUM_STRUCT_02013A04_T_H diff --git a/include/struct_defs/struct_0203D8EC.h b/include/struct_defs/struct_0203D8EC.h deleted file mode 100644 index ed72d91e85..0000000000 --- a/include/struct_defs/struct_0203D8EC.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_0203D8EC_H -#define POKEPLATINUM_STRUCT_0203D8EC_H - -typedef struct { - u16 unk_00_0 : 4; - u16 unk_00_4 : 2; - u16 unk_00_6 : 1; - u16 unk_00_7 : 1; - u16 unk_00_8 : 2; - u16 unk_00_10 : 5; - u16 padding_00_15 : 1; -} UnkStruct_0203D8EC; - -#endif // POKEPLATINUM_STRUCT_0203D8EC_H diff --git a/include/struct_defs/struct_020708E0.h b/include/struct_defs/struct_020708E0.h index f4fecb32bd..1e655dd7c0 100644 --- a/include/struct_defs/struct_020708E0.h +++ b/include/struct_defs/struct_020708E0.h @@ -2,8 +2,6 @@ #define POKEPLATINUM_STRUCT_020708E0_H #include "struct_decls/cell_actor_data.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/struct_020684D0.h" #include "struct_defs/struct_02070950.h" @@ -11,12 +9,14 @@ #include "overlay005/struct_ov5_021D30A8.h" #include "bg_window.h" +#include "menu.h" +#include "string_list.h" typedef struct { Window unk_00; Window unk_10; - UIControlData *unk_20; - ResourceMetadata *unk_24; + Menu *unk_20; + StringList *unk_24; u16 unk_28; u16 state; u32 unk_2C; diff --git a/include/struct_defs/struct_0207F248.h b/include/struct_defs/struct_0207F248.h index 1853ad1785..69a24cf8b0 100644 --- a/include/struct_defs/struct_0207F248.h +++ b/include/struct_defs/struct_0207F248.h @@ -2,11 +2,9 @@ #define POKEPLATINUM_STRUCT_0207F248_H #include "struct_decls/cell_actor_data.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02098700_decl.h" #include "struct_defs/funcptr_0207F248_sub1.h" #include "struct_defs/struct_0207C690.h" @@ -20,8 +18,10 @@ #include "bg_window.h" #include "cell_actor.h" +#include "menu.h" #include "message.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" typedef struct { @@ -43,8 +43,8 @@ typedef struct { Strbuf *unk_6A4; Strbuf *unk_6A8; Strbuf *unk_6AC[20]; - ResourceMetadata *unk_6FC; - UIControlData *unk_700; + StringList *unk_6FC; + Menu *unk_700; StrBufWrapper unk_704[6]; const ByteFlagSet *unk_7F4; DualArrayShortData unk_7F8; diff --git a/include/struct_defs/struct_02081CF4.h b/include/struct_defs/struct_02081CF4.h deleted file mode 100644 index d60fb98057..0000000000 --- a/include/struct_defs/struct_02081CF4.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_02081CF4_H -#define POKEPLATINUM_STRUCT_02081CF4_H - -#include "struct_decls/struct_02013A04_decl.h" - -#include "bg_window.h" - -typedef struct { - const ResourceMetadata *unk_00; - Window *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B_0 : 4; - u8 unk_0B_4 : 2; - u8 unk_0B_6 : 2; -} UnkStruct_02081CF4; - -#endif // POKEPLATINUM_STRUCT_02081CF4_H diff --git a/include/struct_defs/struct_02095E80_t.h b/include/struct_defs/struct_02095E80_t.h index d9b441756b..ee789c2b2d 100644 --- a/include/struct_defs/struct_02095E80_t.h +++ b/include/struct_defs/struct_02095E80_t.h @@ -4,9 +4,6 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02027F8C_decl.h" #include "struct_decls/struct_0202B370_decl.h" #include "struct_decls/struct_02095E80_decl.h" @@ -24,11 +21,14 @@ #include "bg_window.h" #include "cell_actor.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "overlay_manager.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task_manager.h" @@ -83,9 +83,9 @@ struct UnkStruct_02095E80_t { CellActor *unk_47C; SysTask *unk_480[7]; Window unk_49C[34]; - UIControlData *unk_6BC; - ResourceMetadata *unk_6C0; - UIControlData *unk_6C4; + Menu *unk_6BC; + StringList *unk_6C0; + Menu *unk_6C4; int unk_6C8; int unk_6CC; int unk_6D0; @@ -125,8 +125,8 @@ struct UnkStruct_02095E80_t { int unk_36C8; StringTemplate *unk_36CC; MessageLoader *unk_36D0; - ResourceMetadata *unk_36D4; - BmpList *unk_36D8; + StringList *unk_36D4; + ListMenu *unk_36D8; Window unk_36DC; UnkStruct_0202B370 *unk_36EC; int unk_36F0; diff --git a/include/struct_defs/struct_020961E8_t.h b/include/struct_defs/struct_020961E8_t.h index 436981c75c..094854156e 100644 --- a/include/struct_defs/struct_020961E8_t.h +++ b/include/struct_defs/struct_020961E8_t.h @@ -3,7 +3,6 @@ #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0200C738.h" #include "struct_defs/struct_0203DE34.h" #include "struct_defs/struct_020961E8_sub1.h" @@ -13,6 +12,7 @@ #include "bg_window.h" #include "cell_actor.h" +#include "menu.h" #include "message.h" #include "savedata.h" #include "sprite_resource.h" @@ -48,7 +48,7 @@ struct UnkStruct_020961E8_t { Window unk_35C; Window unk_36C; Window *unk_37C[2]; - UIControlData *unk_384; + Menu *unk_384; void *unk_388[2]; NNSG2dCharacterData *unk_390[2]; void *unk_398[2]; diff --git a/include/unk_0200112C.h b/include/unk_0200112C.h deleted file mode 100644 index dae895b405..0000000000 --- a/include/unk_0200112C.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef POKEPLATINUM_UNK_0200112C_H -#define POKEPLATINUM_UNK_0200112C_H - -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" - -#include "overlay084/struct_ov84_02240FA8.h" - -BmpList *sub_0200112C(const UnkStruct_ov84_02240FA8 *param0, u16 param1, u16 param2, u8 param3); -u32 sub_02001288(BmpList *param0); -void sub_02001384(BmpList *param0, u16 *param1, u16 *param2); -void sub_020013AC(BmpList *param0); -void sub_020013D8(BmpList *param0, u8 param1, u8 param2, u8 param3); -u32 sub_02001408(BmpList *param0, UnkStruct_ov84_02240FA8 *param1, u16 param2, u16 param3, u16 param4, u16 param5, u16 *param6, u16 *param7); -void sub_0200147C(BmpList *param0, u8 param1, u8 param2, u8 param3); -void sub_020014D0(BmpList *param0, u16 *param1); -void sub_020014DC(BmpList *param0, u16 *param1, u16 *param2); -u8 sub_020014F0(BmpList *param0); -u32 sub_020014F8(BmpList *param0, u16 param1); -u32 sub_02001504(BmpList *param0, u8 param1); -void sub_020015CC(BmpList *param0, ResourceMetadata *param1); - -#endif // POKEPLATINUM_UNK_0200112C_H diff --git a/include/unk_02001AF4.h b/include/unk_02001AF4.h deleted file mode 100644 index b693a6e2d3..0000000000 --- a/include/unk_02001AF4.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef POKEPLATINUM_UNK_02001AF4_H -#define POKEPLATINUM_UNK_02001AF4_H - -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_defs/struct_02081CF4.h" - -#include "bg_window.h" - -UIControlData *sub_02001AF4(const UnkStruct_02081CF4 *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 param5); -UIControlData *sub_02001B7C(const UnkStruct_02081CF4 *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 param5); -UIControlData *sub_02001B9C(const UnkStruct_02081CF4 *param0, u8 param1, u8 param2); -void sub_02001BC4(UIControlData *param0, u8 *param1); -u32 sub_02001BE0(UIControlData *param0); -u32 sub_02001C94(UIControlData *param0, u16 param1); -u32 sub_02001D44(UIControlData *param0, u8 param1); -u8 sub_02001DC4(UIControlData *param0); -u8 sub_02001DC8(UIControlData *param0); -UIControlData *sub_02002054(BgConfig *param0, const WindowTemplate *param1, u16 param2, u8 param3, u8 param4, u32 param5); -UIControlData *sub_02002100(BgConfig *param0, const WindowTemplate *param1, u16 param2, u8 param3, u32 param4); -u32 sub_02002114(UIControlData *param0, u32 param1); -u32 sub_02002134(UIControlData *param0, u8 param1, u32 param2); -void sub_02002154(UIControlData *param0, u32 param1); -void sub_02002180(Window *param0, u32 param1, u32 param2); - -#endif // POKEPLATINUM_UNK_02001AF4_H diff --git a/include/unk_020041CC.h b/include/unk_020041CC.h index 73e20d6990..e4f52e60a2 100644 --- a/include/unk_020041CC.h +++ b/include/unk_020041CC.h @@ -60,7 +60,7 @@ void sub_02004F68(int param0, u16 param1, int param2); void sub_02004F7C(u16 param0, u16 param1, int param2); void sub_02004F94(int param0, u16 param1, int param2); void sub_02004FA8(int param0, int param1); -void sub_02004FB8(BOOL param0); +void Sound_SetPlaybackMode(BOOL param0); void sub_02004FCC(int param0); void sub_02004FDC(int param0); int sub_02004FEC(void); diff --git a/include/unk_02005474.h b/include/unk_02005474.h index 4fd62c1d15..c61d4b2f72 100644 --- a/include/unk_02005474.h +++ b/include/unk_02005474.h @@ -14,7 +14,7 @@ void sub_020056D4(void); BOOL sub_02005728(u16 param0, int param1); BOOL Sound_PlayEffect(u16 param0); BOOL sub_02005770(u16 param0, int param1); -void sub_020057A4(u16 param0, int param1); +void Sound_StopEffect(u16 param0, int param1); void sub_020057AC(int param0, int param1); void sub_020057BC(int param0); int Sound_IsEffectPlaying(u16 param0); diff --git a/include/unk_0200C6E4.h b/include/unk_0200C6E4.h index e40b90568a..a5d973ca89 100644 --- a/include/unk_0200C6E4.h +++ b/include/unk_0200C6E4.h @@ -27,7 +27,7 @@ BOOL sub_0200C73C(SpriteRenderer *param0, const UnkStruct_ov104_0224133C *param1 BOOL sub_0200C7C0(SpriteRenderer *param0, SpriteGfxHandler *param1, int param2); void sub_0200C7E4(CellActor *param0); void sub_0200C7EC(SpriteGfxHandler *param0); -void sub_0200C800(void); +void OAMManager_ApplyAndResetBuffers(void); void sub_0200C808(void); void sub_0200C810(SpriteGfxHandler *param0); void sub_0200C81C(SpriteGfxHandler *param0); diff --git a/include/unk_0200DA60.h b/include/unk_0200DA60.h deleted file mode 100644 index 39d597a7a3..0000000000 --- a/include/unk_0200DA60.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef POKEPLATINUM_UNK_0200DA60_H -#define POKEPLATINUM_UNK_0200DA60_H - -#include "bg_window.h" -#include "pokemon.h" - -#define TEXT_WINDOW_SIZE 30 - -void Window_SetFrame(BgConfig *param0, u8 param1, u16 param2, u8 param3, u32 param4); -u32 Window_FramePalette(void); -void sub_0200DAA4(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u32 param5); -void Window_Show(Window *param0, u8 param1, u16 param2, u8 param3); -void Window_Clear(Window *param0, u8 param1); -u32 sub_0200DD04(u32 param0); -u32 sub_0200DD08(u32 param0); -void sub_0200DD0C(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u32 param5); -void sub_0200E010(Window *param0, u32 param1, u32 param2); -void sub_0200E060(Window *param0, u8 param1, u16 param2, u8 param3); -void sub_0200E084(Window *param0, u8 param1); -void sub_0200E218(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u32 param5); -void sub_0200E2A4(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u16 param5, u32 param6); -void sub_0200E69C(Window *param0, u8 param1, u16 param2, u8 param3, u8 param4); -void sub_0200E744(Window *param0, u8 param1, u8 param2); -void *sub_0200E7FC(Window *param0, u32 param1); -void DeleteWaitDial(void *param0); -void sub_0200EBC8(void *param0); -u8 *sub_0200EBF0(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u16 param5, u16 param6, u8 param7, int param8); -u8 *sub_0200EC48(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u16 param5, Pokemon *param6, int param7); - -#endif // POKEPLATINUM_UNK_0200DA60_H diff --git a/include/unk_0200F174.h b/include/unk_0200F174.h index 64c42e5774..75e68c3713 100644 --- a/include/unk_0200F174.h +++ b/include/unk_0200F174.h @@ -5,9 +5,9 @@ #include "functypes/funcptr_0200F634.h" -void sub_0200F174(int param0, int param1, int param2, u16 param3, int param4, int param5, int param6); +void StartScreenTransition(int param0, int param1, int param2, u16 param3, int param4, int param5, int param6); void sub_0200F27C(void); -BOOL ScreenWipe_Done(void); +BOOL IsScreenTransitionDone(void); void sub_0200F2C0(void); void sub_0200F32C(int param0); void sub_0200F338(int param0); diff --git a/include/unk_02013A04.h b/include/unk_02013A04.h deleted file mode 100644 index e76b1d416b..0000000000 --- a/include/unk_02013A04.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef POKEPLATINUM_UNK_02013A04_H -#define POKEPLATINUM_UNK_02013A04_H - -#include "struct_decls/struct_02013A04_decl.h" - -#include "message.h" -#include "strbuf.h" - -ResourceMetadata *sub_02013A04(u32 param0, u32 param1); -void sub_02013A3C(ResourceMetadata *param0); -void sub_02013A4C(ResourceMetadata *param0, const MessageLoader *param1, u32 param2, u32 param3); -void sub_02013A6C(ResourceMetadata *param0, const Strbuf *param1, u32 param2); -void sub_02013A90(ResourceMetadata *param0, const ResourceMetadata *param1); -void sub_02013AE8(ResourceMetadata *param0); - -#endif // POKEPLATINUM_UNK_02013A04_H diff --git a/include/unk_0201DBEC.h b/include/unk_0201DBEC.h index 895d8d5f0c..61bc21d3ca 100644 --- a/include/unk_0201DBEC.h +++ b/include/unk_0201DBEC.h @@ -3,8 +3,8 @@ #include -void sub_0201DBEC(u32 param0, int param1); -void sub_0201DC3C(void); +void VRAMTransferManager_New(u32 param0, int param1); +void VRAMTransferManager_Destroy(void); BOOL sub_0201DC68(NNS_GFD_DST_TYPE param0, u32 param1, void *param2, u32 param3); void sub_0201DCAC(void); NNSG2dCellTransferState *sub_0201DCC8(int param0, int param1); diff --git a/include/unk_0202631C.h b/include/unk_0202631C.h index 8560c1c911..6c3f508ac1 100644 --- a/include/unk_0202631C.h +++ b/include/unk_0202631C.h @@ -9,45 +9,45 @@ int Pokedex_SaveSize(void); PokedexData *sub_02026324(u32 param0); void sub_02026338(const PokedexData *param0, PokedexData *param1); -void Pokedex_Init(PokedexData *dexData); -u16 sub_02026DD0(const PokedexData *dexData); -u16 sub_02026E0C(const PokedexData *dexData); -u16 sub_02026E48(const PokedexData *dexData); -u16 sub_02026E64(const PokedexData *dexData); -u16 sub_02026EAC(const PokedexData *dexData); -BOOL sub_02026EF4(const PokedexData *dexData); -BOOL sub_02026F0C(const PokedexData *dexData); -u16 sub_02026F20(const PokedexData *dexData); -u16 sub_02026F58(const PokedexData *dexData); -BOOL Pokedex_HasCaught(const PokedexData *dexData, u16 species); -BOOL Pokedex_HasEncountered(const PokedexData *dexData, u16 species); -u32 sub_0202702C(const PokedexData *dexData, u8 param1); -u32 sub_02027058(const PokedexData *dexData, u16 param1, int param2); -u32 sub_020270AC(const PokedexData *dexData, int param1); -u32 sub_020270DC(const PokedexData *dexData); -u32 sub_020270F8(const PokedexData *dexData, int param1); -u32 sub_02027130(const PokedexData *dexData); -u32 sub_02027154(const PokedexData *dexData, int param1); -u32 sub_0202718C(const PokedexData *dexData); -u32 sub_020271B0(const PokedexData *dexData, int param1); -u32 sub_020271E8(const PokedexData *dexData); -u32 sub_02027208(const PokedexData *dexData, int param1); -u32 sub_02027240(const PokedexData *dexData); -u32 sub_02027264(const PokedexData *dexData, int param1); -u32 sub_02027288(const PokedexData *dexData); -void sub_020272A4(PokedexData *dexData, Pokemon *param1); -void sub_0202736C(PokedexData *dexData, Pokemon *param1); -void sub_02027454(PokedexData *dexData); -BOOL Pokedex_IsNationalUnlocked(const PokedexData *dexData); -BOOL Pokedex_CanDetectForms(const PokedexData *dexData); -void Pokedex_TurnOnFormDetection(PokedexData *dexData); -BOOL sub_020274D0(const PokedexData *dexData, u16 param1, u32 param2); -void sub_02027508(PokedexData *dexData); -BOOL sub_02027514(const PokedexData *dexData); -BOOL sub_02027520(const PokedexData *dexData); -void sub_02027540(PokedexData *dexData); -PokedexData *SaveData_Pokedex(SaveData *param0); -u32 sub_0202756C(const PokedexData *dexData, int param1, int param2); -u32 sub_020276C8(const PokedexData *dexData, int param1); +void Pokedex_Init(PokedexData *param0); +u16 sub_02026DD0(const PokedexData *param0); +u16 Pokedex_CountSeenNational(const PokedexData *pokedex); +u16 Pokedex_CountSeen(const PokedexData *pokedex); +u16 sub_02026E64(const PokedexData *param0); +u16 Pokedex_CountSeenSinnoh(const PokedexData *pokedex); +BOOL sub_02026EF4(const PokedexData *param0); +BOOL sub_02026F0C(const PokedexData *param0); +u16 sub_02026F20(const PokedexData *param0); +u16 sub_02026F58(const PokedexData *param0); +BOOL Pokedex_HasCaughtSpecies(const PokedexData *pokedex, u16 species); +BOOL Pokedex_HasSeenSpecies(const PokedexData *pokedex, u16 species); +u32 sub_0202702C(const PokedexData *param0, u8 param1); +u32 sub_02027058(const PokedexData *param0, u16 param1, int param2); +u32 sub_020270AC(const PokedexData *param0, int param1); +u32 sub_020270DC(const PokedexData *param0); +u32 sub_020270F8(const PokedexData *param0, int param1); +u32 sub_02027130(const PokedexData *param0); +u32 sub_02027154(const PokedexData *param0, int param1); +u32 sub_0202718C(const PokedexData *param0); +u32 sub_020271B0(const PokedexData *param0, int param1); +u32 sub_020271E8(const PokedexData *param0); +u32 sub_02027208(const PokedexData *param0, int param1); +u32 sub_02027240(const PokedexData *param0); +u32 sub_02027264(const PokedexData *param0, int param1); +u32 sub_02027288(const PokedexData *param0); +void sub_020272A4(PokedexData *param0, Pokemon *param1); +void sub_0202736C(PokedexData *param0, Pokemon *param1); +void sub_02027454(PokedexData *param0); +BOOL Pokedex_IsNationalDexObtained(const PokedexData *pokedex); +BOOL sub_02027494(const PokedexData *param0); +void sub_020274B0(PokedexData *param0); +BOOL sub_020274D0(const PokedexData *param0, u16 param1, u32 param2); +void sub_02027508(PokedexData *param0); +BOOL sub_02027514(const PokedexData *param0); +BOOL Pokedex_IsObtained(const PokedexData *pokedex); +void sub_02027540(PokedexData *param0); +PokedexData *SaveData_Pokedex(SaveData *saveData); +u32 sub_0202756C(const PokedexData *param0, int param1, int param2); +u32 sub_020276C8(const PokedexData *param0, int param1); #endif // POKEPLATINUM_UNK_0202631C_H diff --git a/include/unk_020393C8.h b/include/unk_020393C8.h index 1051d7a362..c4ac7413b1 100644 --- a/include/unk_020393C8.h +++ b/include/unk_020393C8.h @@ -15,6 +15,6 @@ void sub_02039750(int param0, int param1, BOOL param2, int param3); void sub_02039794(void); void sub_020397B0(int param0); void sub_020397C8(BOOL param0, u32 param1); -void sub_020397E4(void); +void DrawWifiConnectionIcon(void); #endif // POKEPLATINUM_UNK_020393C8_H diff --git a/include/unk_0203D1B8.h b/include/unk_0203D1B8.h index 2fe5cac17f..74bf0ca6c9 100644 --- a/include/unk_0203D1B8.h +++ b/include/unk_0203D1B8.h @@ -52,7 +52,7 @@ void sub_0203D80C(TaskManager *param0, u16 *param1, u16 *param2, u16 *param3); void sub_0203D874(FieldSystem *fieldSystem, UnkStruct_0209747C *param1); void sub_0203D884(FieldSystem *fieldSystem, UnkStruct_0203D8AC *param1); void *sub_0203D8AC(FieldSystem *fieldSystem); -void *sub_0203D8EC(FieldSystem *fieldSystem); +void *FieldSystem_OpenOptionsMenu(FieldSystem *fieldSystem); UnkStruct_02097728 *sub_0203D920(FieldSystem *fieldSystem, int param1, u8 param2, u8 param3, int param4); UnkStruct_02097728 *sub_0203D94C(FieldSystem *fieldSystem, int param1, u8 param2, int param3); UnkStruct_02097728 *sub_0203D984(FieldSystem *fieldSystem, Pokemon *param1, int param2); diff --git a/platinum.us/filesys.sha1 b/platinum.us/filesys.sha1 index ca5abce298..27012f1e59 100644 --- a/platinum.us/filesys.sha1 +++ b/platinum.us/filesys.sha1 @@ -190,14 +190,14 @@ e3bb819c8dbab8a8db5e4ddccc788b234424e605 *res/prebuilt/wazaeffect/effectclact/we 1c6bab5b5b8295bb3e6b8b6a271a7ca20c1ae177 *res/prebuilt/graphic/box.narc cf140701a40be4f23bb24fb17145b1a176ceabcd *res/prebuilt/graphic/btower.narc f0dd678b1de5b9231ffad99f207085a1dab37491 *res/prebuilt/graphic/bucket.narc -9d3829844b18063946f3bddcf67a839c95c0186f *res/prebuilt/graphic/config_gra.narc +9d3829844b18063946f3bddcf67a839c95c0186f *res/graphics/options_menu/config_gra.narc 937807f1632664139194b95e3f7b8a58ac33f89a *res/prebuilt/graphic/demo_trade.narc 67a8fb6c1b269ab107f2a98f23a5f53fb383ca1d *res/prebuilt/graphic/dendou_demo.narc d5a8953a61b8589539ce7b139ab956a802adaa33 *res/prebuilt/graphic/dendou_pc.narc 2d1a354e31cdd1861bdd7aade661fb9e4dc0ae31 *res/prebuilt/graphic/ending.narc d91ceca1e3ef5e57061dabc690c0f1a1556dc624 *res/prebuilt/graphic/ev_pokeselect.narc 5c673be62fe6bddfa911e3be26762b7e47d60b41 *res/prebuilt/graphic/f_note_gra.narc -4941a639804c2b009836d1ab9b86a2ab0bb0c436 *res/prebuilt/graphic/field_board.narc +4941a639804c2b009836d1ab9b86a2ab0bb0c436 *res/graphics/signposts/field_board.narc 3a71f8eca65f2524f96c4bb8463800ae19a70a90 *res/prebuilt/graphic/field_encounteffect.narc e4ad5fcd9010114089a5ded83a077a75860d633a *res/prebuilt/graphic/fld_comact.narc 1122e901209b1047fbbacb1a47311c8bd529a647 *res/prebuilt/graphic/font.narc @@ -216,11 +216,11 @@ e7266bd8b7095861b6e1fdaf4f13cb648a9c325d *res/prebuilt/graphic/footprint_board.n e22f0296444ce01e0b7619f73a8cf2016b2307b4 *res/prebuilt/graphic/oekaki.narc 917f25f4e5bb3f5e1837471d2a90225e9e95363d *res/prebuilt/graphic/opening.narc dd0663e46347230d1d1b9eb8b583cee9acc10f31 *res/prebuilt/graphic/pl_bag_gra.narc -0929061d78710595aa53796ecffe3545f8406d82 *res/prebuilt/graphic/pl_font.narc +0929061d78710595aa53796ecffe3545f8406d82 *res/fonts/pl_font.narc d397dbd087737151aa8bea242016c626afb55fa5 *res/prebuilt/graphic/pl_plist_gra.narc 883e6afb310f0ab02c26f2026cba1c76210bb3ac *res/prebuilt/graphic/pl_pst_gra.narc c16faeeeee494830c720d1f795a141cacfe49121 *res/prebuilt/graphic/pl_wifinote.narc -298fd1d0ab31efd35cb00b977f69eacbfb8a8da8 *res/prebuilt/graphic/pl_winframe.narc +298fd1d0ab31efd35cb00b977f69eacbfb8a8da8 *res/graphics/windows/pl_winframe.narc b9f77b38cc07a6754fc00a7c1830d86c88d45aa6 *res/prebuilt/graphic/plist_gra.narc e6a7fe0328d168e1b4d92919fe047d2fa12daf56 *res/prebuilt/graphic/pmsi.narc 7c6a50d69659697636849cedebb0143ed0cf146a *res/prebuilt/graphic/poketch.narc diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index 0ec423dc31..d70650eda5 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -16,9 +16,9 @@ Static main Library libcps.a (.version) Library libssl.a (.version) Object main.nef.p/src_main.c.o - Object main.nef.p/src_unk_0200112C.c.o + Object main.nef.p/src_list_menu.c.o Object main.nef.p/src_game_version.c.o - Object main.nef.p/src_unk_02001AF4.c.o + Object main.nef.p/src_menu.c.o Object main.nef.p/src_charcode_util.c.o Object main.nef.p/src_render_text.c.o Object main.nef.p/src_font.c.o @@ -44,14 +44,14 @@ Static main Object main.nef.p/src_unk_0200C440.c.o Object main.nef.p/src_unk_0200C6E4.c.o Object main.nef.p/src_sys_task.c.o - Object main.nef.p/src_unk_0200DA60.c.o + Object main.nef.p/src_render_window.c.o Object main.nef.p/src_unk_0200F174.c.o Object main.nef.p/src_unk_0200F85C.c.o Object main.nef.p/src_unk_02012480.c.o Object main.nef.p/src_unk_02012744.c.o Object main.nef.p/src_unk_020131EC.c.o Object main.nef.p/src_rtc.c.o - Object main.nef.p/src_unk_02013A04.c.o + Object main.nef.p/src_string_list.c.o Object main.nef.p/src_screen_scroll_manager.c.o Object main.nef.p/src_unk_02014000.c.o Object main.nef.p/src_colored_arrow.c.o @@ -491,7 +491,7 @@ Overlay overlay5 Object main.nef.p/src_overlay005_ov5_021E135C.c.o Object main.nef.p/src_overlay005_ov5_021E15F4.c.o Object main.nef.p/src_overlay005_ov5_021E1B08.c.o - Object main.nef.p/src_overlay005_ov5_021E1D20.c.o + Object main.nef.p/src_overlay005_save_info_window.c.o Object main.nef.p/src_overlay005_motion_blur.c.o Object main.nef.p/src_overlay005_field_motion_blur.c.o Object main.nef.p/src_overlay005_encounter_effect_core.c.o @@ -1268,10 +1268,10 @@ Overlay overlay73 Object main.nef.p/src_overlay073_ov73_021D3250.c.o } -Overlay overlay74 +Overlay options_menu { After main - Object main.nef.p/src_overlay074_ov74_021D0D80.c.o + Object main.nef.p/src_applications_options_menu.c.o } Overlay overlay75 diff --git a/platinum.us/rom.rsf b/platinum.us/rom.rsf index 3f8053cd89..bc0c934462 100644 --- a/platinum.us/rom.rsf +++ b/platinum.us/rom.rsf @@ -283,14 +283,26 @@ RomSpec File graphic/box.narc File graphic/btower.narc File graphic/bucket.narc - File graphic/config_gra.narc + + Root /graphic/ + HostRoot res/graphics/options_menu + File config_gra.narc + + Root / + HostRoot res/prebuilt File graphic/demo_trade.narc File graphic/dendou_demo.narc File graphic/dendou_pc.narc File graphic/ending.narc File graphic/ev_pokeselect.narc File graphic/f_note_gra.narc - File graphic/field_board.narc + + Root /graphic + HostRoot res/graphics/signposts + File field_board.narc + + Root / + HostRoot res/prebuilt File graphic/field_encounteffect.narc File graphic/fld_comact.narc File graphic/font.narc @@ -309,11 +321,23 @@ RomSpec File graphic/oekaki.narc File graphic/opening.narc File graphic/pl_bag_gra.narc - File graphic/pl_font.narc + + Root /graphic + HostRoot res/fonts + File pl_font.narc + + Root / + HostRoot res/prebuilt File graphic/pl_plist_gra.narc File graphic/pl_pst_gra.narc File graphic/pl_wifinote.narc - File graphic/pl_winframe.narc + + Root /graphic + HostRoot res/graphics/windows + File pl_winframe.narc + + Root / + HostRoot res/prebuilt File graphic/plist_gra.narc File graphic/pmsi.narc File graphic/poketch.narc diff --git a/platinum.us/sbins.sha1 b/platinum.us/sbins.sha1 index 752d24204e..ab809f1012 100644 --- a/platinum.us/sbins.sha1 +++ b/platinum.us/sbins.sha1 @@ -73,7 +73,7 @@ b80c7e652b63a37f2a30b9c0f14d6e5608185d05 *overlay70.sbin cf86b18a15a2b011fd0e7c98379a9fa228c3fc4c *overlay71.sbin 39a79a31811cac6b1a90206e67624c0a3179bd46 *overlay72.sbin deecf01a5608b25883804ef30c9d4c3d0c904ee5 *overlay73.sbin -21e3d2a2fb36d739f4fd16792719bf6fa7b7e6aa *overlay74.sbin +21e3d2a2fb36d739f4fd16792719bf6fa7b7e6aa *options_menu.sbin 88ceed815cb9a2ef6e0d2dcedd2fc126e717c165 *overlay75.sbin 13777fa8b44e026c4eb960cce2309451c4594726 *overlay76.sbin d7a304050d0049809b21cf75937e4d14aaf858c5 *overlay77.sbin diff --git a/res/fonts/font_message.json b/res/fonts/font_message.json new file mode 100644 index 0000000000..1652670015 --- /dev/null +++ b/res/fonts/font_message.json @@ -0,0 +1,38 @@ +{ + "maxGlyphWidth": 16, + "maxGlyphHeight": 16, + "glyphWidths": [ + 7, 10, 10, 10, 10, 9, 10, 9, 10, 10, 10, 11, 11, 9, 11, 9, + 11, 10, 11, 9, 11, 10, 11, 9, 10, 11, 11, 10, 11, 10, 11, 11, + 11, 10, 11, 10, 10, 11, 10, 11, 9, 11, 10, 9, 10, 10, 10, 10, + 11, 11, 10, 11, 11, 10, 11, 11, 11, 11, 11, 10, 11, 11, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 11, 9, + 11, 10, 11, 9, 11, 10, 11, 10, 11, 10, 11, 10, 11, 9, 11, 9, + 11, 10, 11, 10, 10, 11, 10, 11, 9, 10, 10, 10, 10, 9, 9, 10, + 11, 11, 9, 10, 10, 10, 11, 11, 10, 11, 11, 10, 11, 11, 10, 9, + 10, 10, 10, 10, 10, 10, 10, 9, 10, 10, 9, 10, 9, 10, 10, 10, + 10, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 6, 7, 7, 3, 6, 7, + 4, 7, 7, 7, 7, 7, 6, 7, 6, 7, 7, 7, 7, 6, 7, 0, + 6, 10, 5, 6, 9, 5, 8, 7, 7, 8, 8, 6, 6, 8, 8, 8, + 8, 8, 8, 8, 8, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 11, 12, 11, 11, 11, 11, 11, 12, 7, 6, 6, 7, 6, 9, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 3, 5, 6, 4, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 10, 6, 6, 6, 6, 6, 4, 4, 4, 4, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 10, 10, + 6, 6, 6, 6, 8, 8, 5, 7, 4, 6, 6, 6, 5, 5, 6, 6, + 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 12, + 12, 6, 1, 2, 4, 8, 16, 5, 6, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ] +} diff --git a/res/fonts/font_message.png b/res/fonts/font_message.png new file mode 100644 index 0000000000..d3da0b0547 Binary files /dev/null and b/res/fonts/font_message.png differ diff --git a/res/fonts/font_special_chars.png b/res/fonts/font_special_chars.png new file mode 100644 index 0000000000..fda93f0db6 Binary files /dev/null and b/res/fonts/font_special_chars.png differ diff --git a/res/fonts/font_subscreen.json b/res/fonts/font_subscreen.json new file mode 100644 index 0000000000..bea5338b8a --- /dev/null +++ b/res/fonts/font_subscreen.json @@ -0,0 +1,38 @@ +{ + "maxGlyphWidth": 16, + "maxGlyphHeight": 16, + "glyphWidths": [ + 7, 11, 13, 12, 12, 10, 11, 10, 13, 12, 13, 13, 14, 12, 14, 10, + 14, 13, 14, 13, 13, 12, 14, 12, 12, 13, 14, 13, 14, 13, 13, 13, + 13, 13, 13, 11, 12, 13, 12, 13, 12, 13, 13, 13, 13, 13, 13, 13, + 14, 13, 13, 13, 13, 13, 14, 13, 13, 13, 13, 13, 14, 14, 12, 13, + 13, 13, 13, 11, 13, 11, 13, 10, 12, 12, 12, 13, 13, 13, 13, 13, + 13, 10, 12, 10, 13, 11, 13, 11, 12, 10, 13, 13, 14, 13, 13, 12, + 14, 13, 14, 11, 13, 13, 14, 13, 14, 13, 13, 13, 14, 13, 14, 12, + 14, 13, 14, 11, 13, 14, 13, 14, 11, 12, 13, 13, 12, 13, 11, 13, + 14, 13, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 14, 13, 13, 12, + 13, 13, 13, 11, 13, 11, 12, 10, 11, 13, 12, 13, 11, 12, 12, 12, + 12, 11, 8, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, + 9, 11, 11, 8, 11, 11, 10, 11, 11, 12, 11, 13, 11, 11, 10, 11, + 11, 12, 11, 11, 10, 10, 10, 10, 10, 10, 9, 10, 10, 6, 7, 9, + 6, 11, 10, 10, 10, 10, 10, 10, 9, 10, 10, 11, 10, 10, 10, 0, + 10, 11, 8, 10, 11, 8, 8, 10, 10, 10, 10, 8, 8, 9, 9, 12, + 11, 11, 11, 11, 11, 7, 7, 8, 8, 12, 12, 13, 13, 13, 13, 13, + 12, 13, 13, 13, 12, 13, 13, 12, 13, 10, 12, 12, 12, 12, 12, 12, + 13, 11, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 11, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 4, 6, 7, 5, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 11, 7, 7, 7, 7, 7, 5, 5, 5, 5, 7, 7, + 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 11, 11, + 7, 7, 7, 7, 10, 10, 7, 7, 5, 7, 7, 7, 6, 6, 7, 7, + 7, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 5, 7, 14, + 14, 7, 1, 2, 4, 8, 16, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ] +} diff --git a/res/fonts/font_subscreen.png b/res/fonts/font_subscreen.png new file mode 100644 index 0000000000..1cf0bdc48b Binary files /dev/null and b/res/fonts/font_subscreen.png differ diff --git a/res/fonts/font_system.json b/res/fonts/font_system.json new file mode 100644 index 0000000000..1652670015 --- /dev/null +++ b/res/fonts/font_system.json @@ -0,0 +1,38 @@ +{ + "maxGlyphWidth": 16, + "maxGlyphHeight": 16, + "glyphWidths": [ + 7, 10, 10, 10, 10, 9, 10, 9, 10, 10, 10, 11, 11, 9, 11, 9, + 11, 10, 11, 9, 11, 10, 11, 9, 10, 11, 11, 10, 11, 10, 11, 11, + 11, 10, 11, 10, 10, 11, 10, 11, 9, 11, 10, 9, 10, 10, 10, 10, + 11, 11, 10, 11, 11, 10, 11, 11, 11, 11, 11, 10, 11, 11, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 10, 11, 9, + 11, 10, 11, 9, 11, 10, 11, 10, 11, 10, 11, 10, 11, 9, 11, 9, + 11, 10, 11, 10, 10, 11, 10, 11, 9, 10, 10, 10, 10, 9, 9, 10, + 11, 11, 9, 10, 10, 10, 11, 11, 10, 11, 11, 10, 11, 11, 10, 9, + 10, 10, 10, 10, 10, 10, 10, 9, 10, 10, 9, 10, 9, 10, 10, 10, + 10, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 6, 7, 7, 3, 6, 7, + 4, 7, 7, 7, 7, 7, 6, 7, 6, 7, 7, 7, 7, 6, 7, 0, + 6, 10, 5, 6, 9, 5, 8, 7, 7, 8, 8, 6, 6, 8, 8, 8, + 8, 8, 8, 8, 8, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 11, 12, 11, 11, 11, 11, 11, 12, 7, 6, 6, 7, 6, 9, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 3, 5, 6, 4, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 10, 6, 6, 6, 6, 6, 4, 4, 4, 4, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 10, 10, + 6, 6, 6, 6, 8, 8, 5, 7, 4, 6, 6, 6, 5, 5, 6, 6, + 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 12, + 12, 6, 1, 2, 4, 8, 16, 5, 6, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ] +} diff --git a/res/fonts/font_system.png b/res/fonts/font_system.png new file mode 100644 index 0000000000..d3da0b0547 Binary files /dev/null and b/res/fonts/font_system.png differ diff --git a/res/fonts/font_unown.json b/res/fonts/font_unown.json new file mode 100644 index 0000000000..a9ac0567e0 --- /dev/null +++ b/res/fonts/font_unown.json @@ -0,0 +1,38 @@ +{ + "maxGlyphWidth": 12, + "maxGlyphHeight": 16, + "glyphWidths": [ + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 12, 11, 11, + 12, 11, 12, 10, 10, 12, 11, 12, 12, 12, 9, 11, 9, 12, 10, 12, + 11, 11, 12, 11, 12, 8, 11, 12, 11, 11, 12, 11, 12, 10, 10, 12, + 11, 12, 12, 12, 9, 11, 9, 12, 10, 12, 11, 11, 12, 11, 12, 0, + 10, 10, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 12, 11, 11, 12, + 11, 12, 10, 10, 12, 11, 12, 12, 12, 9, 11, 9, 12, 10, 12, 11, + 11, 12, 11, 12, 8, 11, 12, 11, 11, 12, 11, 12, 10, 10, 12, 11, + 12, 12, 12, 9, 11, 9, 12, 10, 12, 11, 11, 12, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ] +} diff --git a/res/fonts/font_unown.png b/res/fonts/font_unown.png new file mode 100644 index 0000000000..699dc1019e Binary files /dev/null and b/res/fonts/font_unown.png differ diff --git a/res/fonts/meson.build b/res/fonts/meson.build new file mode 100644 index 0000000000..9a787408f4 --- /dev/null +++ b/res/fonts/meson.build @@ -0,0 +1,113 @@ +fonts = { + 'font_system.NFGR': files('font_system.png', 'font_system.json'), + 'font_message.NFGR': files('font_message.png', 'font_message.json'), + 'font_subscreen.NFGR': files('font_subscreen.png', 'font_subscreen.json'), + 'font_unown.NFGR': files('font_unown.png', 'font_unown.json'), +} + +nfgr_gen = generator(nitrogfx_exe, + arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ], + output: '@BASENAME@.NFGR', +) + +font_nfgrs = [] +foreach target, inputs: fonts + font_nfgrs += custom_target(target, + output: target, + input: inputs, + command: [ + nitrogfx_exe, + '@INPUT0@', + '@OUTPUT@', + '-metadata', '@INPUT1@', + ] + ) + +endforeach + +font_special_chars_png = files('font_special_chars.png') +font_special_chars_ncgr = custom_target('font_special_chars.NCGR', + output: 'font_special_chars.NCGR', + input: font_special_chars_png, + command: [ + nitrogfx_exe, + '@INPUT@', + '@OUTPUT@', + '-sopc', + '-version101', + ], +) +font_special_chars_ncgr_lz = custom_target('font_special_chars.NCGR.lz', + output: 'font_special_chars.NCGR.lz', + input: font_special_chars_ncgr, + command: [ + nitrogfx_exe, + '@INPUT@', + '@OUTPUT@', + ], +) +font_nclr = custom_target('font.NCLR', + output: 'font.NCLR', + input: font_special_chars_png, + command: [ + nitrogfx_exe, + '@INPUT@', + '@OUTPUT@', + '-bitdepth', '4', + '-nopad', + '-pcmp', + ], +) + +screen_indicators_png = files('screen_indicators.png') +screen_indicators_ncgr = custom_target('screen_indicators.NCGR', + output: 'screen_indicators.NCGR', + input: screen_indicators_png, + command: [ + nitrogfx_exe, + '@INPUT@', + '@OUTPUT@', + '-sopc', + '-version101', + ], +) +screen_indicators_nclr = custom_target('screen_indicators.NCLR', + output: 'screen_indicators.NCLR', + input: screen_indicators_png, + command: [ + nitrogfx_exe, + '@INPUT@', + '@OUTPUT@', + '-bitdepth', '4', + ], +) + +current_build_dir = meson.current_build_dir() +pl_font_order = files('pl_font.order') +pl_font_ignore = files('pl_font.ignore') +pl_font_narc = custom_target('pl_font.narc', + output: [ + 'pl_font.narc', + 'pl_font.naix', + ], + input: [ + font_nfgrs, + font_special_chars_ncgr_lz, + font_nclr, + screen_indicators_ncgr, + screen_indicators_nclr, + pl_font_order, + pl_font_ignore, + ], + command: [ + knarc_exe, + '-d', current_build_dir, + '-p', '@OUTPUT0@', + '--order', pl_font_order, + '--ignore', pl_font_ignore, + '--naix', + ], +) + +nitrofs_files += pl_font_narc[0] +naix_headers += pl_font_narc[1] diff --git a/res/fonts/pl_font.ignore b/res/fonts/pl_font.ignore new file mode 100644 index 0000000000..c32ddfc40a --- /dev/null +++ b/res/fonts/pl_font.ignore @@ -0,0 +1,3 @@ +font_special_chars.NCGR +*.narc +*.naix diff --git a/res/fonts/pl_font.order b/res/fonts/pl_font.order new file mode 100644 index 0000000000..da2db0076a --- /dev/null +++ b/res/fonts/pl_font.order @@ -0,0 +1,8 @@ +font_system.NFGR +font_message.NFGR +font_subscreen.NFGR +font_unown.NFGR +font_special_chars.NCGR.lz +screen_indicators.NCGR +font.NCLR +screen_indicators.NCLR diff --git a/res/fonts/screen_indicators.png b/res/fonts/screen_indicators.png new file mode 100644 index 0000000000..4f7cf991a8 Binary files /dev/null and b/res/fonts/screen_indicators.png differ diff --git a/res/graphics/meson.build b/res/graphics/meson.build new file mode 100644 index 0000000000..45198f727c --- /dev/null +++ b/res/graphics/meson.build @@ -0,0 +1,3 @@ +subdir('options_menu') +subdir('signposts') +subdir('windows') diff --git a/res/graphics/options_menu/config_gra.order b/res/graphics/options_menu/config_gra.order new file mode 100644 index 0000000000..6f3098de74 --- /dev/null +++ b/res/graphics/options_menu/config_gra.order @@ -0,0 +1,3 @@ +tiles.NCLR +tiles.NCGR +tilemap.bin diff --git a/res/graphics/options_menu/meson.build b/res/graphics/options_menu/meson.build new file mode 100644 index 0000000000..50c15dd1cf --- /dev/null +++ b/res/graphics/options_menu/meson.build @@ -0,0 +1,32 @@ +tiles_png = files('tiles.png') +tiles_ncgr = ncgr_gen.process(tiles_png, + extra_args: [ '-sopc', '-version101', ], +) +tiles_nclr = nclr_gen.process(tiles_png, + extra_args: [ '-bitdepth', '4', '-pcmp', '-nopad', '-invertsize', ], +) +tilemap_nscr = copy_gen.process(files('tilemap.bin')) + +config_gra_order = files('config_gra.order') +config_gra_narc = custom_target('config_gra.narc', + output: [ + 'config_gra.narc', + 'config_gra.naix', + ], + input: [ + tiles_ncgr, + tiles_nclr, + tilemap_nscr, + config_gra_order, + ], + command: [ + knarc_exe, + '-d', '@PRIVATE_DIR@', + '-p', '@OUTPUT0@', + '--order', config_gra_order, + '--naix', + ] +) + +nitrofs_files += config_gra_narc[0] +naix_headers += config_gra_narc[1] diff --git a/res/graphics/options_menu/tilemap.bin b/res/graphics/options_menu/tilemap.bin new file mode 100644 index 0000000000..d0ab54f65d Binary files /dev/null and b/res/graphics/options_menu/tilemap.bin differ diff --git a/res/graphics/options_menu/tiles.png b/res/graphics/options_menu/tiles.png new file mode 100644 index 0000000000..bc24f2b867 Binary files /dev/null and b/res/graphics/options_menu/tiles.png differ diff --git a/res/graphics/signposts/city_map_canalave.png b/res/graphics/signposts/city_map_canalave.png new file mode 100644 index 0000000000..4277e483da Binary files /dev/null and b/res/graphics/signposts/city_map_canalave.png differ diff --git a/res/graphics/signposts/city_map_celestic.png b/res/graphics/signposts/city_map_celestic.png new file mode 100644 index 0000000000..9e8c4f7170 Binary files /dev/null and b/res/graphics/signposts/city_map_celestic.png differ diff --git a/res/graphics/signposts/city_map_empty.png b/res/graphics/signposts/city_map_empty.png new file mode 100644 index 0000000000..b673ab7685 Binary files /dev/null and b/res/graphics/signposts/city_map_empty.png differ diff --git a/res/graphics/signposts/city_map_eterna.png b/res/graphics/signposts/city_map_eterna.png new file mode 100644 index 0000000000..a30999c762 Binary files /dev/null and b/res/graphics/signposts/city_map_eterna.png differ diff --git a/res/graphics/signposts/city_map_fight_area.png b/res/graphics/signposts/city_map_fight_area.png new file mode 100644 index 0000000000..752757dc19 Binary files /dev/null and b/res/graphics/signposts/city_map_fight_area.png differ diff --git a/res/graphics/signposts/city_map_floaroma.png b/res/graphics/signposts/city_map_floaroma.png new file mode 100644 index 0000000000..0f6972eab0 Binary files /dev/null and b/res/graphics/signposts/city_map_floaroma.png differ diff --git a/res/graphics/signposts/city_map_hearthome.png b/res/graphics/signposts/city_map_hearthome.png new file mode 100644 index 0000000000..031e9c2fa3 Binary files /dev/null and b/res/graphics/signposts/city_map_hearthome.png differ diff --git a/res/graphics/signposts/city_map_jubilife.png b/res/graphics/signposts/city_map_jubilife.png new file mode 100644 index 0000000000..048703e614 Binary files /dev/null and b/res/graphics/signposts/city_map_jubilife.png differ diff --git a/res/graphics/signposts/city_map_oreburgh.png b/res/graphics/signposts/city_map_oreburgh.png new file mode 100644 index 0000000000..85a9539e08 Binary files /dev/null and b/res/graphics/signposts/city_map_oreburgh.png differ diff --git a/res/graphics/signposts/city_map_pastoria.png b/res/graphics/signposts/city_map_pastoria.png new file mode 100644 index 0000000000..e119ac731f Binary files /dev/null and b/res/graphics/signposts/city_map_pastoria.png differ diff --git a/res/graphics/signposts/city_map_pokemon_league.png b/res/graphics/signposts/city_map_pokemon_league.png new file mode 100644 index 0000000000..90cadf55bd Binary files /dev/null and b/res/graphics/signposts/city_map_pokemon_league.png differ diff --git a/res/graphics/signposts/city_map_resort_area.png b/res/graphics/signposts/city_map_resort_area.png new file mode 100644 index 0000000000..bcf9c7dadb Binary files /dev/null and b/res/graphics/signposts/city_map_resort_area.png differ diff --git a/res/graphics/signposts/city_map_sandgem.png b/res/graphics/signposts/city_map_sandgem.png new file mode 100644 index 0000000000..519a6d75ff Binary files /dev/null and b/res/graphics/signposts/city_map_sandgem.png differ diff --git a/res/graphics/signposts/city_map_snowpoint.png b/res/graphics/signposts/city_map_snowpoint.png new file mode 100644 index 0000000000..e432e354d6 Binary files /dev/null and b/res/graphics/signposts/city_map_snowpoint.png differ diff --git a/res/graphics/signposts/city_map_solaceon.png b/res/graphics/signposts/city_map_solaceon.png new file mode 100644 index 0000000000..2ac3406cc2 Binary files /dev/null and b/res/graphics/signposts/city_map_solaceon.png differ diff --git a/res/graphics/signposts/city_map_sunyshore.png b/res/graphics/signposts/city_map_sunyshore.png new file mode 100644 index 0000000000..2f75369ee7 Binary files /dev/null and b/res/graphics/signposts/city_map_sunyshore.png differ diff --git a/res/graphics/signposts/city_map_survival_area.png b/res/graphics/signposts/city_map_survival_area.png new file mode 100644 index 0000000000..2cbfb21d90 Binary files /dev/null and b/res/graphics/signposts/city_map_survival_area.png differ diff --git a/res/graphics/signposts/city_map_twinleaf.png b/res/graphics/signposts/city_map_twinleaf.png new file mode 100644 index 0000000000..7257a1972d Binary files /dev/null and b/res/graphics/signposts/city_map_twinleaf.png differ diff --git a/res/graphics/signposts/city_map_veilstone.png b/res/graphics/signposts/city_map_veilstone.png new file mode 100644 index 0000000000..99554fe896 Binary files /dev/null and b/res/graphics/signposts/city_map_veilstone.png differ diff --git a/res/graphics/signposts/field_board.order b/res/graphics/signposts/field_board.order new file mode 100644 index 0000000000..8bcdf7099b --- /dev/null +++ b/res/graphics/signposts/field_board.order @@ -0,0 +1,52 @@ +signpost_frame.NCGR +signpost.NCLR +route_map_00.NCGR +route_map_01.NCGR +route_map_02.NCGR +route_map_03.NCGR +route_map_04.NCGR +route_map_05.NCGR +route_map_06.NCGR +route_map_07.NCGR +route_map_08.NCGR +route_map_09.NCGR +route_map_10.NCGR +route_map_11.NCGR +route_map_12.NCGR +route_map_13.NCGR +route_map_14.NCGR +route_map_15.NCGR +route_map_16.NCGR +route_map_17.NCGR +route_map_18.NCGR +route_map_19.NCGR +route_map_20.NCGR +route_map_21.NCGR +route_map_22.NCGR +route_map_23.NCGR +route_map_24.NCGR +route_map_25.NCGR +route_map_26.NCGR +route_map_27.NCGR +route_map_28.NCGR +route_map_29.NCGR +route_map_30.NCGR +city_map_empty.NCGR +city_map_twinleaf.NCGR +city_map_sandgem.NCGR +city_map_floaroma.NCGR +city_map_solaceon.NCGR +city_map_celestic.NCGR +city_map_survival_area.NCGR +city_map_resort_area.NCGR +city_map_jubilife.NCGR +city_map_canalave.NCGR +city_map_oreburgh.NCGR +city_map_eterna.NCGR +city_map_hearthome.NCGR +city_map_pastoria.NCGR +city_map_veilstone.NCGR +city_map_sunyshore.NCGR +city_map_snowpoint.NCGR +city_map_pokemon_league.NCGR +city_map_fight_area.NCGR diff --git a/res/graphics/signposts/meson.build b/res/graphics/signposts/meson.build new file mode 100644 index 0000000000..49bf6e1825 --- /dev/null +++ b/res/graphics/signposts/meson.build @@ -0,0 +1,92 @@ +field_board_pngs = files( + 'signpost_frame.png', + 'route_map_00.png', + 'route_map_01.png', + 'route_map_02.png', + 'route_map_03.png', + 'route_map_04.png', + 'route_map_05.png', + 'route_map_06.png', + 'route_map_07.png', + 'route_map_08.png', + 'route_map_09.png', + 'route_map_10.png', + 'route_map_11.png', + 'route_map_12.png', + 'route_map_13.png', + 'route_map_14.png', + 'route_map_15.png', + 'route_map_16.png', + 'route_map_17.png', + 'route_map_18.png', + 'route_map_19.png', + 'route_map_20.png', + 'route_map_21.png', + 'route_map_22.png', + 'route_map_23.png', + 'route_map_24.png', + 'route_map_25.png', + 'route_map_26.png', + 'route_map_27.png', + 'route_map_28.png', + 'route_map_29.png', + 'route_map_30.png', + 'city_map_empty.png', + 'city_map_twinleaf.png', + 'city_map_sandgem.png', + 'city_map_floaroma.png', + 'city_map_solaceon.png', + 'city_map_celestic.png', + 'city_map_survival_area.png', + 'city_map_resort_area.png', + 'city_map_jubilife.png', + 'city_map_canalave.png', + 'city_map_oreburgh.png', + 'city_map_eterna.png', + 'city_map_hearthome.png', + 'city_map_pastoria.png', + 'city_map_veilstone.png', + 'city_map_sunyshore.png', + 'city_map_snowpoint.png', + 'city_map_pokemon_league.png', + 'city_map_fight_area.png', +) + +field_board_pals = files('signpost.pal') + +field_board_ncgrs = ncgr_gen.process(field_board_pngs, + extra_args: [ + '-sopc', + '-version101', + ] +) + +field_board_nclrs = nclr_gen.process(field_board_pals, + extra_args: [ + '-bitdepth', '4', + ] +) + +field_board_order = files('field_board.order') + +field_board_narc = custom_target('field_board.narc', + output: [ + 'field_board.narc', + 'field_board.naix', + ], + input: [ + field_board_ncgrs, + field_board_nclrs, + field_board_order, + ], + command: [ + knarc_exe, + '-d', '@PRIVATE_DIR@', + '-p', '@OUTPUT0@', + '--order', field_board_order, + '--naix', + ] +) + +nitrofs_files += field_board_narc[0] +naix_headers += field_board_narc[1] diff --git a/res/graphics/signposts/route_map_00.png b/res/graphics/signposts/route_map_00.png new file mode 100644 index 0000000000..b421947ef9 Binary files /dev/null and b/res/graphics/signposts/route_map_00.png differ diff --git a/res/graphics/signposts/route_map_01.png b/res/graphics/signposts/route_map_01.png new file mode 100644 index 0000000000..e24f75392f Binary files /dev/null and b/res/graphics/signposts/route_map_01.png differ diff --git a/res/graphics/signposts/route_map_02.png b/res/graphics/signposts/route_map_02.png new file mode 100644 index 0000000000..d6075bff66 Binary files /dev/null and b/res/graphics/signposts/route_map_02.png differ diff --git a/res/graphics/signposts/route_map_03.png b/res/graphics/signposts/route_map_03.png new file mode 100644 index 0000000000..46423a8089 Binary files /dev/null and b/res/graphics/signposts/route_map_03.png differ diff --git a/res/graphics/signposts/route_map_04.png b/res/graphics/signposts/route_map_04.png new file mode 100644 index 0000000000..59450a52e5 Binary files /dev/null and b/res/graphics/signposts/route_map_04.png differ diff --git a/res/graphics/signposts/route_map_05.png b/res/graphics/signposts/route_map_05.png new file mode 100644 index 0000000000..4ad6067a58 Binary files /dev/null and b/res/graphics/signposts/route_map_05.png differ diff --git a/res/graphics/signposts/route_map_06.png b/res/graphics/signposts/route_map_06.png new file mode 100644 index 0000000000..02b31be981 Binary files /dev/null and b/res/graphics/signposts/route_map_06.png differ diff --git a/res/graphics/signposts/route_map_07.png b/res/graphics/signposts/route_map_07.png new file mode 100644 index 0000000000..8c70ecec2d Binary files /dev/null and b/res/graphics/signposts/route_map_07.png differ diff --git a/res/graphics/signposts/route_map_08.png b/res/graphics/signposts/route_map_08.png new file mode 100644 index 0000000000..7a47e0d892 Binary files /dev/null and b/res/graphics/signposts/route_map_08.png differ diff --git a/res/graphics/signposts/route_map_09.png b/res/graphics/signposts/route_map_09.png new file mode 100644 index 0000000000..923203eb19 Binary files /dev/null and b/res/graphics/signposts/route_map_09.png differ diff --git a/res/graphics/signposts/route_map_10.png b/res/graphics/signposts/route_map_10.png new file mode 100644 index 0000000000..02c72ccf6b Binary files /dev/null and b/res/graphics/signposts/route_map_10.png differ diff --git a/res/graphics/signposts/route_map_11.png b/res/graphics/signposts/route_map_11.png new file mode 100644 index 0000000000..d6aae84f90 Binary files /dev/null and b/res/graphics/signposts/route_map_11.png differ diff --git a/res/graphics/signposts/route_map_12.png b/res/graphics/signposts/route_map_12.png new file mode 100644 index 0000000000..7b0f0129d4 Binary files /dev/null and b/res/graphics/signposts/route_map_12.png differ diff --git a/res/graphics/signposts/route_map_13.png b/res/graphics/signposts/route_map_13.png new file mode 100644 index 0000000000..2bcbc1a730 Binary files /dev/null and b/res/graphics/signposts/route_map_13.png differ diff --git a/res/graphics/signposts/route_map_14.png b/res/graphics/signposts/route_map_14.png new file mode 100644 index 0000000000..3396bc03aa Binary files /dev/null and b/res/graphics/signposts/route_map_14.png differ diff --git a/res/graphics/signposts/route_map_15.png b/res/graphics/signposts/route_map_15.png new file mode 100644 index 0000000000..aa4f3c9466 Binary files /dev/null and b/res/graphics/signposts/route_map_15.png differ diff --git a/res/graphics/signposts/route_map_16.png b/res/graphics/signposts/route_map_16.png new file mode 100644 index 0000000000..7bfd0734d6 Binary files /dev/null and b/res/graphics/signposts/route_map_16.png differ diff --git a/res/graphics/signposts/route_map_17.png b/res/graphics/signposts/route_map_17.png new file mode 100644 index 0000000000..91955d16b4 Binary files /dev/null and b/res/graphics/signposts/route_map_17.png differ diff --git a/res/graphics/signposts/route_map_18.png b/res/graphics/signposts/route_map_18.png new file mode 100644 index 0000000000..6ba5fe1195 Binary files /dev/null and b/res/graphics/signposts/route_map_18.png differ diff --git a/res/graphics/signposts/route_map_19.png b/res/graphics/signposts/route_map_19.png new file mode 100644 index 0000000000..941ed0bac4 Binary files /dev/null and b/res/graphics/signposts/route_map_19.png differ diff --git a/res/graphics/signposts/route_map_20.png b/res/graphics/signposts/route_map_20.png new file mode 100644 index 0000000000..34c3844a06 Binary files /dev/null and b/res/graphics/signposts/route_map_20.png differ diff --git a/res/graphics/signposts/route_map_21.png b/res/graphics/signposts/route_map_21.png new file mode 100644 index 0000000000..d1a75348af Binary files /dev/null and b/res/graphics/signposts/route_map_21.png differ diff --git a/res/graphics/signposts/route_map_22.png b/res/graphics/signposts/route_map_22.png new file mode 100644 index 0000000000..5ed45703d5 Binary files /dev/null and b/res/graphics/signposts/route_map_22.png differ diff --git a/res/graphics/signposts/route_map_23.png b/res/graphics/signposts/route_map_23.png new file mode 100644 index 0000000000..39a4e63989 Binary files /dev/null and b/res/graphics/signposts/route_map_23.png differ diff --git a/res/graphics/signposts/route_map_24.png b/res/graphics/signposts/route_map_24.png new file mode 100644 index 0000000000..b8459dc846 Binary files /dev/null and b/res/graphics/signposts/route_map_24.png differ diff --git a/res/graphics/signposts/route_map_25.png b/res/graphics/signposts/route_map_25.png new file mode 100644 index 0000000000..8241af4ed8 Binary files /dev/null and b/res/graphics/signposts/route_map_25.png differ diff --git a/res/graphics/signposts/route_map_26.png b/res/graphics/signposts/route_map_26.png new file mode 100644 index 0000000000..95fffec944 Binary files /dev/null and b/res/graphics/signposts/route_map_26.png differ diff --git a/res/graphics/signposts/route_map_27.png b/res/graphics/signposts/route_map_27.png new file mode 100644 index 0000000000..ccbccc5304 Binary files /dev/null and b/res/graphics/signposts/route_map_27.png differ diff --git a/res/graphics/signposts/route_map_28.png b/res/graphics/signposts/route_map_28.png new file mode 100644 index 0000000000..6617d4ce57 Binary files /dev/null and b/res/graphics/signposts/route_map_28.png differ diff --git a/res/graphics/signposts/route_map_29.png b/res/graphics/signposts/route_map_29.png new file mode 100644 index 0000000000..c75f740626 Binary files /dev/null and b/res/graphics/signposts/route_map_29.png differ diff --git a/res/graphics/signposts/route_map_30.png b/res/graphics/signposts/route_map_30.png new file mode 100644 index 0000000000..bd16848c89 Binary files /dev/null and b/res/graphics/signposts/route_map_30.png differ diff --git a/res/graphics/signposts/signpost.pal b/res/graphics/signposts/signpost.pal new file mode 100644 index 0000000000..26f965c0e0 --- /dev/null +++ b/res/graphics/signposts/signpost.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +156 213 139 +255 255 255 +222 205 164 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +222 205 164 +0 0 0 +98 74 41 +123 98 49 +139 115 49 +156 123 57 +180 148 65 +156 213 139 +255 255 255 +164 222 180 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +164 222 180 +0 0 0 +41 106 65 +49 131 74 +57 139 82 +65 156 82 +74 180 98 +156 213 139 +255 255 255 +205 205 205 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +205 205 205 +0 0 0 +82 90 90 +98 115 115 +115 123 123 +131 139 139 +148 156 156 +156 213 139 +255 255 255 +180 197 222 +180 189 197 +139 148 156 +255 0 0 +8 0 255 +255 172 16 +156 115 82 +180 197 222 +0 0 0 +57 65 115 +74 82 139 +82 98 148 +90 106 164 +106 131 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/signposts/signpost_frame.png b/res/graphics/signposts/signpost_frame.png new file mode 100644 index 0000000000..d351056f2f Binary files /dev/null and b/res/graphics/signposts/signpost_frame.png differ diff --git a/res/graphics/windows/meson.build b/res/graphics/windows/meson.build new file mode 100644 index 0000000000..5df081a0aa --- /dev/null +++ b/res/graphics/windows/meson.build @@ -0,0 +1,90 @@ +pl_winframe_pal_pngs= files( + 'standard_system.png', + 'message_box_00.png', + 'message_box_01.png', + 'message_box_02.png', + 'message_box_03.png', + 'message_box_04.png', + 'message_box_05.png', + 'message_box_06.png', + 'message_box_07.png', + 'message_box_08.png', + 'message_box_09.png', + 'message_box_10.png', + 'message_box_12.png', + 'message_box_13.png', + 'message_box_14.png', + 'message_box_15.png', + 'message_box_16.png', + 'message_box_17.png', + 'message_box_18.png', + 'message_box_19.png', +) + +# Extra files added here either do not have a distinct palette of their +# own or have a special PAL file. +pl_winframe_sopc_v101_pngs = pl_winframe_pal_pngs +pl_winframe_sopc_v101_pngs += files( + 'standard_field.png', # no distinct palette + 'scroll_cursor.png', # no distinct palette + 'wait_dial.png', # no distinct palette + 'message_box_11.png', # has a special PAL file +) + +pl_winframe_v101_clobber_pngs = files('pokemon_preview.png') + +# Extra files added here have special handling requirements that disallow +# them from being lumped in with the other PNG -> NCLR conversions. +pl_winframe_pals = pl_winframe_pal_pngs +pl_winframe_pals += files( + 'standard_underground.pal', # is a distinct palette + 'pokemon_preview.png', # has no SOPC section + 'message_box_11.pal', # has multiple palettes, unlike the other message boxes +) + +pl_winframe_ncgrs_sopc_v101 = ncgr_gen.process(pl_winframe_sopc_v101_pngs, + extra_args: [ + '-sopc', + '-version101', + ], +) +pl_winframe_ncgrs_v101_clobber = ncgr_gen.process(pl_winframe_v101_clobber_pngs, + extra_args: [ + '-version101', + '-clobbersize', + ] +) +pl_winframe_nclrs = nclr_gen.process(pl_winframe_pals, + extra_args: [ + '-bitdepth', '4', + ] +) +pl_winframe_ncers = ncer_gen.process(files('pokemon_preview_cell.json')) +pl_winframe_nanrs = nanr_gen.process(files('pokemon_preview_anim.json')) + +pl_winframe_order = files('pl_winframe.order') + +pl_winframe_narc = custom_target('pl_winframe.narc', + output: [ + 'pl_winframe.narc', + 'pl_winframe.naix', + ], + input: [ + pl_winframe_ncgrs_sopc_v101, + pl_winframe_ncgrs_v101_clobber, + pl_winframe_nclrs, + pl_winframe_ncers, + pl_winframe_nanrs, + pl_winframe_order, + ], + command: [ + knarc_exe, + '-d', '@PRIVATE_DIR@', + '-p', '@OUTPUT0@', + '--order', pl_winframe_order, + '--naix', + ] +) + +nitrofs_files += pl_winframe_narc[0] +naix_headers += pl_winframe_narc[1] diff --git a/res/graphics/windows/message_box_00.png b/res/graphics/windows/message_box_00.png new file mode 100644 index 0000000000..f7ede137b2 Binary files /dev/null and b/res/graphics/windows/message_box_00.png differ diff --git a/res/graphics/windows/message_box_01.png b/res/graphics/windows/message_box_01.png new file mode 100644 index 0000000000..992228e3e7 Binary files /dev/null and b/res/graphics/windows/message_box_01.png differ diff --git a/res/graphics/windows/message_box_02.png b/res/graphics/windows/message_box_02.png new file mode 100644 index 0000000000..160a2b9a51 Binary files /dev/null and b/res/graphics/windows/message_box_02.png differ diff --git a/res/graphics/windows/message_box_03.png b/res/graphics/windows/message_box_03.png new file mode 100644 index 0000000000..350c1e6fbd Binary files /dev/null and b/res/graphics/windows/message_box_03.png differ diff --git a/res/graphics/windows/message_box_04.png b/res/graphics/windows/message_box_04.png new file mode 100644 index 0000000000..48b9963a79 Binary files /dev/null and b/res/graphics/windows/message_box_04.png differ diff --git a/res/graphics/windows/message_box_05.png b/res/graphics/windows/message_box_05.png new file mode 100644 index 0000000000..ba3a0b1e81 Binary files /dev/null and b/res/graphics/windows/message_box_05.png differ diff --git a/res/graphics/windows/message_box_06.png b/res/graphics/windows/message_box_06.png new file mode 100644 index 0000000000..4bfbc8d9cb Binary files /dev/null and b/res/graphics/windows/message_box_06.png differ diff --git a/res/graphics/windows/message_box_07.png b/res/graphics/windows/message_box_07.png new file mode 100644 index 0000000000..aa809340de Binary files /dev/null and b/res/graphics/windows/message_box_07.png differ diff --git a/res/graphics/windows/message_box_08.png b/res/graphics/windows/message_box_08.png new file mode 100644 index 0000000000..22573c60d0 Binary files /dev/null and b/res/graphics/windows/message_box_08.png differ diff --git a/res/graphics/windows/message_box_09.png b/res/graphics/windows/message_box_09.png new file mode 100644 index 0000000000..537cb2fe42 Binary files /dev/null and b/res/graphics/windows/message_box_09.png differ diff --git a/res/graphics/windows/message_box_10.png b/res/graphics/windows/message_box_10.png new file mode 100644 index 0000000000..9e33ca318e Binary files /dev/null and b/res/graphics/windows/message_box_10.png differ diff --git a/res/graphics/windows/message_box_11.pal b/res/graphics/windows/message_box_11.pal new file mode 100644 index 0000000000..48fd09fd19 --- /dev/null +++ b/res/graphics/windows/message_box_11.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +156 213 139 +255 255 255 +32 32 32 +180 189 197 +139 148 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +65 65 65 +82 82 82 +115 115 123 +255 0 255 +255 255 255 +156 213 139 +255 255 255 +82 90 90 +180 189 197 +139 148 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +49 49 49 +16 16 16 +139 139 139 +139 139 139 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/windows/message_box_11.png b/res/graphics/windows/message_box_11.png new file mode 100644 index 0000000000..e641eba2c5 Binary files /dev/null and b/res/graphics/windows/message_box_11.png differ diff --git a/res/graphics/windows/message_box_12.png b/res/graphics/windows/message_box_12.png new file mode 100644 index 0000000000..87af1b8621 Binary files /dev/null and b/res/graphics/windows/message_box_12.png differ diff --git a/res/graphics/windows/message_box_13.png b/res/graphics/windows/message_box_13.png new file mode 100644 index 0000000000..b9b287b2ca Binary files /dev/null and b/res/graphics/windows/message_box_13.png differ diff --git a/res/graphics/windows/message_box_14.png b/res/graphics/windows/message_box_14.png new file mode 100644 index 0000000000..3e1b007bad Binary files /dev/null and b/res/graphics/windows/message_box_14.png differ diff --git a/res/graphics/windows/message_box_15.png b/res/graphics/windows/message_box_15.png new file mode 100644 index 0000000000..a20f11efa5 Binary files /dev/null and b/res/graphics/windows/message_box_15.png differ diff --git a/res/graphics/windows/message_box_16.png b/res/graphics/windows/message_box_16.png new file mode 100644 index 0000000000..30c8ec2179 Binary files /dev/null and b/res/graphics/windows/message_box_16.png differ diff --git a/res/graphics/windows/message_box_17.png b/res/graphics/windows/message_box_17.png new file mode 100644 index 0000000000..a8847977da Binary files /dev/null and b/res/graphics/windows/message_box_17.png differ diff --git a/res/graphics/windows/message_box_18.png b/res/graphics/windows/message_box_18.png new file mode 100644 index 0000000000..57bfce3d42 Binary files /dev/null and b/res/graphics/windows/message_box_18.png differ diff --git a/res/graphics/windows/message_box_19.png b/res/graphics/windows/message_box_19.png new file mode 100644 index 0000000000..3cf275a618 Binary files /dev/null and b/res/graphics/windows/message_box_19.png differ diff --git a/res/graphics/windows/pl_winframe.order b/res/graphics/windows/pl_winframe.order new file mode 100644 index 0000000000..4ca575c4eb --- /dev/null +++ b/res/graphics/windows/pl_winframe.order @@ -0,0 +1,50 @@ +standard_system.NCGR +standard_field.NCGR +message_box_00.NCGR +message_box_01.NCGR +message_box_02.NCGR +message_box_03.NCGR +message_box_04.NCGR +message_box_05.NCGR +message_box_06.NCGR +message_box_07.NCGR +message_box_08.NCGR +message_box_09.NCGR +message_box_10.NCGR +message_box_11.NCGR +message_box_12.NCGR +message_box_13.NCGR +message_box_14.NCGR +message_box_15.NCGR +message_box_16.NCGR +message_box_17.NCGR +message_box_18.NCGR +message_box_19.NCGR +scroll_cursor.NCGR +wait_dial.NCGR +standard_system.NCLR +message_box_00.NCLR +message_box_01.NCLR +message_box_02.NCLR +message_box_03.NCLR +message_box_04.NCLR +message_box_05.NCLR +message_box_06.NCLR +message_box_07.NCLR +message_box_08.NCLR +message_box_09.NCLR +message_box_10.NCLR +message_box_11.NCLR +message_box_12.NCLR +message_box_13.NCLR +message_box_14.NCLR +message_box_15.NCLR +message_box_16.NCLR +message_box_17.NCLR +message_box_18.NCLR +message_box_19.NCLR +standard_underground.NCLR +pokemon_preview_anim.NANR +pokemon_preview_cell.NCER +pokemon_preview.NCGR +pokemon_preview.NCLR diff --git a/res/graphics/windows/pokemon_preview.png b/res/graphics/windows/pokemon_preview.png new file mode 100644 index 0000000000..d178ce222c Binary files /dev/null and b/res/graphics/windows/pokemon_preview.png differ diff --git a/res/graphics/windows/pokemon_preview_anim.json b/res/graphics/windows/pokemon_preview_anim.json new file mode 100644 index 0000000000..7c376a506b --- /dev/null +++ b/res/graphics/windows/pokemon_preview_anim.json @@ -0,0 +1,54 @@ +{ + "labelEnabled": true, + "sequenceCount": 2, + "frameCount": 8, + "sequences": [{ + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 1, + "resultId": 0 + }] + }, { + "frameCount": 7, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 1, + "resultId": 0 + }, { + "frameDelay": 8, + "resultId": 1 + }, { + "frameDelay": 32, + "resultId": 0 + }, { + "frameDelay": 4, + "resultId": 1 + }, { + "frameDelay": 4, + "resultId": 0 + }, { + "frameDelay": 4, + "resultId": 1 + }, { + "frameDelay": 1, + "resultId": 0 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }], + "resultCount": 2, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/windows/pokemon_preview_cell.json b/res/graphics/windows/pokemon_preview_cell.json new file mode 100644 index 0000000000..30ffeec43a --- /dev/null +++ b/res/graphics/windows/pokemon_preview_cell.json @@ -0,0 +1,278 @@ +{ + "labelEnabled": true, + "extended": true, + "vramTransferEnabled": false, + "cellCount": 2, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 39, + "maxY": 39, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": 216, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 472, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 216, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 64, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 72, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 472, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 80, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 504, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 88, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 96, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 14 + }, + "maxX": 39, + "maxY": 39, + "minX": -40, + "minY": -40, + "oamCount": 6, + "OAM": [{ + "Attr0": { + "YCoordinate": 216, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 472, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 100, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 216, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 164, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 172, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 472, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 180, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 504, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 188, + "Priority": 0, + "Palette": 0 + } + }, { + "Attr0": { + "YCoordinate": 24, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 24, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 196, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/windows/scroll_cursor.png b/res/graphics/windows/scroll_cursor.png new file mode 100644 index 0000000000..105e21a4de Binary files /dev/null and b/res/graphics/windows/scroll_cursor.png differ diff --git a/res/graphics/windows/standard_field.png b/res/graphics/windows/standard_field.png new file mode 100644 index 0000000000..e62cd900f5 Binary files /dev/null and b/res/graphics/windows/standard_field.png differ diff --git a/res/graphics/windows/standard_system.png b/res/graphics/windows/standard_system.png new file mode 100644 index 0000000000..5d663ef354 Binary files /dev/null and b/res/graphics/windows/standard_system.png differ diff --git a/res/graphics/windows/standard_underground.pal b/res/graphics/windows/standard_underground.pal new file mode 100644 index 0000000000..f3a7c1c51f --- /dev/null +++ b/res/graphics/windows/standard_underground.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 197 0 +255 255 255 +172 189 197 +90 115 139 +49 74 98 +0 0 0 +213 172 74 +131 123 82 +49 74 98 +222 246 238 +131 106 74 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/windows/wait_dial.png b/res/graphics/windows/wait_dial.png new file mode 100644 index 0000000000..d2cfbb25f7 Binary files /dev/null and b/res/graphics/windows/wait_dial.png differ diff --git a/res/meson.build b/res/meson.build index fc0be199da..15948ab8ae 100644 --- a/res/meson.build +++ b/res/meson.build @@ -10,6 +10,11 @@ subdir('text') # must be listed first for GMM header targets # Common generator for "scripting" files, i.e. field and battle scripts relative_source_root = fs.relative_to(meson.project_source_root(), meson.project_build_root()) +copy_gen = generator(find_program('cp'), + arguments: [ '@INPUT@', '@OUTPUT@', ], + output: '@PLAINNAME@' +) + s_to_bin_gen = generator(make_script_bin_sh, arguments: [ '-i', relative_source_root / 'include', @@ -30,8 +35,35 @@ s_to_bin_gen = generator(make_script_bin_sh, output: '@BASENAME@' ) +ncgr_gen = generator(nitrogfx_exe, + arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ], + output: '@BASENAME@.NCGR', +) + +nclr_gen = generator(nitrogfx_exe, + arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ], + output: '@BASENAME@.NCLR', +) + +ncer_gen = generator(nitrogfx_exe, + arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ], + output: '@BASENAME@.NCER' +) + +nanr_gen = generator(nitrogfx_exe, + arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ], + output: '@BASENAME@.NANR' +) + +lz_gen = generator(nitrogfx_exe, + arguments: [ '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@', ], + output: '@PLAINNAME@.lz', +) + subdir('battle') subdir('field') +subdir('fonts') +subdir('graphics') subdir('items') subdir('pokemon') subdir('sound') diff --git a/res/prebuilt/graphic/config_gra.narc b/res/prebuilt/graphic/config_gra.narc deleted file mode 100644 index 8ea154e173..0000000000 Binary files a/res/prebuilt/graphic/config_gra.narc and /dev/null differ diff --git a/res/prebuilt/graphic/field_board.narc b/res/prebuilt/graphic/field_board.narc deleted file mode 100644 index b63405830b..0000000000 Binary files a/res/prebuilt/graphic/field_board.narc and /dev/null differ diff --git a/res/prebuilt/graphic/meson.build b/res/prebuilt/graphic/meson.build index 0c03f46224..16ce8f11fa 100644 --- a/res/prebuilt/graphic/meson.build +++ b/res/prebuilt/graphic/meson.build @@ -3,14 +3,12 @@ prebuilt_files = [ 'box.narc', 'btower.narc', 'bucket.narc', - 'config_gra.narc', 'demo_trade.narc', 'dendou_demo.narc', 'dendou_pc.narc', 'ending.narc', 'ev_pokeselect.narc', 'f_note_gra.narc', - 'field_board.narc', 'field_encounteffect.narc', 'fld_comact.narc', 'font.narc', @@ -29,11 +27,9 @@ prebuilt_files = [ 'oekaki.narc', 'opening.narc', 'pl_bag_gra.narc', - 'pl_font.narc', 'pl_plist_gra.narc', 'pl_pst_gra.narc', 'pl_wifinote.narc', - 'pl_winframe.narc', 'plist_gra.narc', 'pmsi.narc', 'poketch.narc', diff --git a/res/prebuilt/graphic/pl_font.narc b/res/prebuilt/graphic/pl_font.narc deleted file mode 100644 index 5b85832c02..0000000000 Binary files a/res/prebuilt/graphic/pl_font.narc and /dev/null differ diff --git a/res/prebuilt/graphic/pl_winframe.narc b/res/prebuilt/graphic/pl_winframe.narc deleted file mode 100644 index 7a3038fd42..0000000000 Binary files a/res/prebuilt/graphic/pl_winframe.narc and /dev/null differ diff --git a/res/text/meson.build b/res/text/meson.build index 64da0549e3..cf2af63274 100644 --- a/res/text/meson.build +++ b/res/text/meson.build @@ -219,7 +219,7 @@ message_bank_files = files( 'message_bank_unk_0217.gmm', 'message_bank_unk_0218.gmm', 'message_bank_status_condition_names.gmm', - 'message_bank_unk_0220.gmm', + 'message_bank_options_menu.gmm', 'message_bank_unk_0221.gmm', 'message_bank_oreburgh_mine_b1f.gmm', 'message_bank_oreburgh_mine_b2f.gmm', @@ -531,7 +531,7 @@ message_bank_files = files( 'message_bank_route_229.gmm', 'message_bank_unk_0532.gmm', 'message_bank_unk_0533.gmm', - 'message_bank_unk_0534.gmm', + 'message_bank_save_info_window.gmm', 'message_bank_ribbon_names.gmm', 'message_bank_unk_0536.gmm', 'message_bank_unk_0537.gmm', diff --git a/res/text/message_bank_unk_0220.gmm b/res/text/message_bank_options_menu.gmm similarity index 69% rename from res/text/message_bank_unk_0220.gmm rename to res/text/message_bank_options_menu.gmm index 34b174447c..3e83ad52e9 100644 --- a/res/text/message_bank_unk_0220.gmm +++ b/res/text/message_bank_options_menu.gmm @@ -1,7 +1,7 @@ - + used OPTIONS @@ -13,203 +13,203 @@ used POKéMON PEARL - + used TEXT SPEED - + used BATTLE SCENE - + used BATTLE STYLE - + used SOUND - + used BUTTON MODE - + used FRAME - + used CONFIRM - + used SLOW - + used MID - + used FAST - + used ON - + used OFF - + used SHIFT - + used SET - + used STEREO - + used MONO - + used NORMAL - + used START = X - + used L = A - + used TYPE 1 - + used TYPE 2 - + used TYPE 3 - + used TYPE 4 - + used TYPE 5 - + used TYPE 6 - + used TYPE 7 - + used TYPE 8 - + used TYPE 9 - + used TYPE 10 - + used TYPE 11 - + used TYPE 12 - + used TYPE 13 - + used TYPE 14 - + used TYPE 15 - + used TYPE 16 - + used TYPE 17 - + used TYPE 18 - + used TYPE 19 - + used TYPE 20 - + used CLOSE - + used Choose one of three text-display\nspeeds. - + used Choose between seeing or not seeing\nPokémon battle animations. - + used Choose between battle rules on\nreplacing a fallen Pokémon. - + used Choose the game’s sound mode. - + used Choose one of three sets of button\nsettings. - + used Choose the text-window design. - + used Switch to the selected settings? - + used YES - + used NO - + used Return to the game. diff --git a/res/text/message_bank_unk_0534.gmm b/res/text/message_bank_save_info_window.gmm similarity index 100% rename from res/text/message_bank_unk_0534.gmm rename to res/text/message_bank_save_info_window.gmm diff --git a/res/text/message_banks.order b/res/text/message_banks.order index a946a1a62c..5864cf81f9 100644 --- a/res/text/message_banks.order +++ b/res/text/message_banks.order @@ -218,7 +218,7 @@ message_bank_unk_0216 message_bank_unk_0217 message_bank_unk_0218 message_bank_status_condition_names -message_bank_unk_0220 +message_bank_options_menu message_bank_unk_0221 message_bank_oreburgh_mine_b1f message_bank_oreburgh_mine_b2f @@ -532,7 +532,7 @@ message_bank_route_228_south_house message_bank_route_229 message_bank_unk_0532 message_bank_unk_0533 -message_bank_unk_0534 +message_bank_save_info_window message_bank_ribbon_names message_bank_unk_0536 message_bank_unk_0537 diff --git a/src/applications/options_menu.c b/src/applications/options_menu.c new file mode 100644 index 0000000000..bbb0fa4058 --- /dev/null +++ b/src/applications/options_menu.c @@ -0,0 +1,980 @@ +#include "applications/options_menu.h" + +#include +#include + +#include "constants/heap.h" +#include "constants/narc.h" +#include "consts/sdat.h" + +#include "struct_defs/struct_02099F80.h" + +#include "graphics/options_menu/config_gra.naix" +#include "text/gmm/message_bank_options_menu.h" +#include "text/pl_msg.naix" + +#include "bg_window.h" +#include "core_sys.h" +#include "font.h" +#include "game_options.h" +#include "graphics.h" +#include "gx_layers.h" +#include "heap.h" +#include "menu.h" +#include "message.h" +#include "narc.h" +#include "overlay_manager.h" +#include "palette.h" +#include "render_text.h" +#include "render_window.h" +#include "strbuf.h" +#include "text.h" +#include "unk_020041CC.h" +#include "unk_02005474.h" +#include "unk_0200C6E4.h" +#include "unk_0200F174.h" +#include "unk_02017728.h" +#include "unk_0201DBEC.h" +#include "unk_020393C8.h" + +#define MENU_TITLE_BASE_TILE 10 +#define MENU_TITLE_WIDTH 12 +#define MENU_TITLE_HEIGHT 2 +#define ENTRIES_BASE_TILE (MENU_TITLE_BASE_TILE + MENU_TITLE_WIDTH * MENU_TITLE_HEIGHT) +#define ENTRIES_WIDTH 30 +#define ENTRIES_HEIGHT 14 +#define DESCRIPTION_BASE_TILE (ENTRIES_BASE_TILE + ENTRIES_WIDTH * ENTRIES_HEIGHT) +#define DESCRIPTION_WIDTH 27 +#define DESCRIPTION_HEIGHT 4 +#define STANDARD_WINDOW_BASE_TILE (DESCRIPTION_BASE_TILE + DESCRIPTION_WIDTH * DESCRIPTION_HEIGHT) +#define MESSAGE_BOX_BASE_TILE (STANDARD_WINDOW_BASE_TILE + 9) +#define CONFIRMATION_BASE_TILE (MESSAGE_BOX_BASE_TILE + 30) + +#define CHOICES_X (12 * 8 + 4) +#define CHOICES_WIDTH (48 * 8) + +#define SINGLE_ENTRY_HEIGHT 16 +#define FIRST_ENTRY_OFFSET 24 + +#define NUM_WINDOWS 3 +#define NUM_BG_TEMPLATES 5 + +#define HEAP_ALLOCATION_SIZE 0x10000 + +enum { + ENTRY_TEXT_SPEED = 0, + ENTRY_SOUND_MODE, + ENTRY_BATTLE_SCENE, + ENTRY_BATTLE_STYLE, + ENTRY_BUTTON_MODE, + ENTRY_MESSAGE_BOX_FRAME, + ENTRY_CLOSE, + + MAX_ENTRIES, +}; + +typedef struct OptionsMenuEntry { + u16 numChoices; + u16 selected; + Strbuf *choices[20]; +} OptionsMenuEntry; + +typedef struct OptionsMenuData { + enum HeapId heapID; + int state; + int subState; + int dummy0C; + u32 saveSelections : 2; + u32 cursor : 3; + u32 dummy10_5 : 16; + u32 redrawMessageBox : 1; + u32 dummy10_22 : 10; + BgConfig *bgConfig; + OptionsMenu options; + Options *saveOptions; + MessageLoader *msgLoader; + void *nscrBuffer; + NNSG2dScreenData *tilemapData; + + union { + Window asArray[NUM_WINDOWS]; + struct { + Window title; + Window entries; + Window description; + }; + } windows; + + union { + OptionsMenuEntry asArray[MAX_ENTRIES]; + struct { + OptionsMenuEntry textSpeed; + OptionsMenuEntry soundMode; + OptionsMenuEntry battleScene; + OptionsMenuEntry battleStyle; + OptionsMenuEntry buttonMode; + OptionsMenuEntry messageBoxStyle; + OptionsMenuEntry close; + }; + } entries; + + Menu *yesNoChoice; + u32 textPrinter; + void *dummy2B0; + void *dummy2B4; + void *dummy2B8; +} OptionsMenuData; + +static void OptionsMenuVBlank(void *data); + +static int SetupMenuVisuals(OptionsMenuData *menuData); +static void SetVRAMBanks(void); +static void SetupBgs(OptionsMenuData *menuData); +static void LoadBgTiles(OptionsMenuData *menuData); +static void SetupWindows(OptionsMenuData *menuData); + +static void PrintTitleAndEntries(OptionsMenuData *param0); +static void PrintEntryChoices(OptionsMenuData *menuData, u16 entry); +static void PrintEntryDescription(OptionsMenuData *menuData, u16 entry, BOOL scheduleVRAMCopy); +static void PrintBankEntryAsDescription(OptionsMenuData *menuData, u16 entry, BOOL scheduleVRAMCopy); +static BOOL IsTextPrinterDone(const OptionsMenuData *menuData); +static void LoadAllEntryChoices(OptionsMenuData *menuData); + +static BOOL ChangesWereMade(OptionsMenuData *menuData); +static void DrawConfirmationPrompt(OptionsMenuData *menuData); + +static void ProcessMainInput(OptionsMenuData *menuData); +static u32 ProcessConfirmationInput(OptionsMenuData *menuData); + +static int TeardownMenuData(OptionsMenuData *menuData); +static void TeardownBgs(OptionsMenuData *menuData); +static void TeardownTilemaps(OptionsMenuData *menuData); +static void TeardownWindows(OptionsMenuData *menuData); + +BOOL OptionsMenu_Init(OverlayManager *ovyManager, int *state) +{ + OptionsMenuData *menuData = NULL; + Options *options = OverlayManager_Args(ovyManager); + + Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_OPTIONS_MENU, HEAP_ALLOCATION_SIZE); + + menuData = OverlayManager_NewData(ovyManager, sizeof(OptionsMenuData), HEAP_ID_OPTIONS_MENU); + memset(menuData, 0, sizeof(OptionsMenuData)); + + menuData->options.textSpeed = Options_TextSpeed(options); + menuData->options.battleScene = Options_BattleScene(options); + menuData->options.battleStyle = Options_BattleStyle(options); + menuData->options.soundMode = Options_SoundMode(options); + menuData->options.buttonMode = Options_ButtonMode(options); + menuData->options.messageBoxStyle = Options_Frame(options); + menuData->heapID = HEAP_ID_OPTIONS_MENU; + menuData->saveOptions = options; + + RenderControlFlags_SetCanABSpeedUpPrint(FALSE); + + return TRUE; +} + +BOOL OptionsMenu_Exit(OverlayManager *ovyManager, int *state) +{ + OptionsMenuData *menuData = OverlayManager_Data(ovyManager); + + if (menuData->saveSelections == 1) { + menuData->options.textSpeed = menuData->entries.textSpeed.selected; + menuData->options.battleScene = menuData->entries.battleScene.selected; + menuData->options.battleStyle = menuData->entries.battleStyle.selected; + menuData->options.soundMode = menuData->entries.soundMode.selected; + menuData->options.buttonMode = menuData->entries.buttonMode.selected; + menuData->options.messageBoxStyle = menuData->entries.messageBoxStyle.selected; + } + + Options_SetTextSpeed(menuData->saveOptions, menuData->options.textSpeed); + Options_SetBattleScene(menuData->saveOptions, menuData->options.battleScene); + Options_SetBattleStyle(menuData->saveOptions, menuData->options.battleStyle); + Options_SetSoundMode(menuData->saveOptions, menuData->options.soundMode); + Options_SetButtonMode(menuData->saveOptions, menuData->options.buttonMode); + Options_SetFrame(menuData->saveOptions, menuData->options.messageBoxStyle); + Sound_SetPlaybackMode(menuData->options.soundMode); + Options_SetSystemButtonMode(NULL, menuData->options.buttonMode); + + RenderControlFlags_SetCanABSpeedUpPrint(TRUE); + + OverlayManager_FreeData(ovyManager); + Heap_Destroy(menuData->heapID); + + return TRUE; +} + +enum { + STATE_SETUP_MENU_VISUALS = 0, + STATE_WAIT_FOR_FADE_IN, + STATE_HANDLE_INPUT, + STATE_CONFIRM_NEW_SETTINGS, + STATE_WAIT_CONFIRM_NEW_SETTINGS, + STATE_HANDLE_YES_NO_INPUT, + STATE_START_VISUAL_TEARDOWN, + STATE_WAIT_FOR_FADE_OUT, + STATE_TEARDOWN, +}; + +BOOL OptionsMenu_Main(OverlayManager *ovyManager, int *state) +{ + OptionsMenuData *menuData = OverlayManager_Data(ovyManager); + u32 choiceYesNo; + + switch (menuData->state) { + case STATE_SETUP_MENU_VISUALS: + if (!SetupMenuVisuals(menuData)) { + return FALSE; + } + + StartScreenTransition(3, 1, 1, 0x0, 6, 1, menuData->heapID); + break; + + case STATE_WAIT_FOR_FADE_IN: + if (!IsScreenTransitionDone()) { + return FALSE; + } + break; + + case STATE_HANDLE_INPUT: + if ((JOY_NEW(PAD_BUTTON_A) && menuData->cursor == ENTRY_CLOSE) || JOY_NEW(PAD_BUTTON_B)) { + if (ChangesWereMade(menuData) == TRUE) { + menuData->state = STATE_CONFIRM_NEW_SETTINGS; + } else { + Sound_PlayEffect(SEQ_SE_CONFIRM); + menuData->saveSelections = 2; + menuData->state = STATE_START_VISUAL_TEARDOWN; + } + + return FALSE; + } + + ProcessMainInput(menuData); + return FALSE; + + case STATE_CONFIRM_NEW_SETTINGS: + RenderControlFlags_SetCanABSpeedUpPrint(TRUE); + PrintBankEntryAsDescription(menuData, options_menu_confirm_dialog, FALSE); + break; + + case STATE_WAIT_CONFIRM_NEW_SETTINGS: + if (IsTextPrinterDone(menuData)) { + RenderControlFlags_SetCanABSpeedUpPrint(FALSE); + DrawConfirmationPrompt(menuData); + menuData->state = STATE_HANDLE_YES_NO_INPUT; + } + + return FALSE; + + case STATE_HANDLE_YES_NO_INPUT: + choiceYesNo = ProcessConfirmationInput(menuData); + + if (choiceYesNo != MENU_NOTHING_CHOSEN) { + if (choiceYesNo == 0) { + Sound_StopEffect(SEQ_SE_CONFIRM, 0); + Sound_PlayEffect(SEQ_SE_DP_SAVE); + menuData->saveSelections = 1; + } else { + menuData->saveSelections = 2; + } + + menuData->state = STATE_START_VISUAL_TEARDOWN; + } + + return FALSE; + + case STATE_START_VISUAL_TEARDOWN: + if (Text_IsPrinterActive(menuData->textPrinter)) { + Text_RemovePrinter(menuData->textPrinter); + } + + StartScreenTransition(3, 0, 0, 0x0, 6, 1, menuData->heapID); + break; + + case STATE_WAIT_FOR_FADE_OUT: + if (!IsScreenTransitionDone()) { + return FALSE; + } + break; + + case STATE_TEARDOWN: + if (!TeardownMenuData(menuData)) { + return FALSE; + } + + return TRUE; + } + + menuData->state++; + return FALSE; +} + +static void SetVRAMBanks() +{ + UnkStruct_02099F80 banks = { + GX_VRAM_BG_128_A, + GX_VRAM_BGEXTPLTT_NONE, + GX_VRAM_SUB_BG_128_C, + GX_VRAM_SUB_BGEXTPLTT_NONE, + GX_VRAM_OBJ_16_G, + GX_VRAM_OBJEXTPLTT_NONE, + GX_VRAM_SUB_OBJ_16_I, + GX_VRAM_SUB_OBJEXTPLTT_NONE, + GX_VRAM_TEX_NONE, + GX_VRAM_TEXPLTT_NONE, + }; + + GXLayers_SetBanks(&banks); +} + +static void OptionsMenuVBlank(void *data) +{ + OptionsMenuData *menuData = data; + + if (menuData->redrawMessageBox) { + LoadMessageBoxGraphics(menuData->bgConfig, + BG_LAYER_MAIN_1, + MESSAGE_BOX_BASE_TILE, + 15, + menuData->entries.messageBoxStyle.selected, + menuData->heapID); + menuData->redrawMessageBox = FALSE; + } + + OAMManager_ApplyAndResetBuffers(); + NNS_GfdDoVramTransfer(); + Bg_RunScheduledUpdates(menuData->bgConfig); + OS_SetIrqCheckFlag(OS_IE_V_BLANK); +} + +static int SetupMenuVisuals(OptionsMenuData *menuData) +{ + switch (menuData->subState) { + case 0: + SetMainCallback(NULL, NULL); + DisableHBlank(); + GXLayers_DisableEngineALayers(); + GXLayers_DisableEngineBLayers(); + + GX_SetVisiblePlane(0); + GXS_SetVisiblePlane(0); + + SetVRAMBanks(); + sub_0200F32C(0); + sub_0200F32C(1); + SetupBgs(menuData); + break; + + case 1: + LoadBgTiles(menuData); + menuData->msgLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, + NARC_INDEX_MSGDATA__PL_MSG, + message_bank_options_menu, + menuData->heapID); + LoadAllEntryChoices(menuData); + break; + + case 2: + SetupWindows(menuData); + PrintTitleAndEntries(menuData); + VRAMTransferManager_New(32, menuData->heapID); + GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, TRUE); + DrawWifiConnectionIcon(); + SetMainCallback(OptionsMenuVBlank, menuData); + menuData->subState = 0; + return TRUE; + } + + menuData->subState++; + return FALSE; +} + +static int TeardownMenuData(OptionsMenuData *menuData) +{ + int v0 = 0, v1 = 0; + + switch (menuData->subState) { + case 0: + VRAMTransferManager_Destroy(); + TeardownWindows(menuData); + + for (v0 = 0; v0 < MAX_ENTRIES; v0++) { + for (v1 = 0; v1 < menuData->entries.asArray[v0].numChoices; v1++) { + Strbuf_Free(menuData->entries.asArray[v0].choices[v1]); + } + } + + MessageLoader_Free(menuData->msgLoader); + TeardownTilemaps(menuData); + TeardownBgs(menuData); + break; + + case 1: + SetMainCallback(NULL, NULL); + DisableHBlank(); + GXLayers_DisableEngineALayers(); + GXLayers_DisableEngineBLayers(); + + GX_SetVisiblePlane(0); + GXS_SetVisiblePlane(0); + menuData->subState = 0; + return TRUE; + } + + menuData->subState++; + return FALSE; +} + +static void SetupBgs(OptionsMenuData *menuData) +{ + menuData->bgConfig = BgConfig_New(menuData->heapID); + + GraphicsModes graphicsModes = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_0, + GX_BGMODE_0, + GX_BG0_AS_2D + }; + + SetAllGraphicsModes(&graphicsModes); + + BgTemplate bgTemplates[NUM_BG_TEMPLATES] = { + { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .screenSize = BG_SCREEN_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf800, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = 0, + .dummy = 0, + .mosaic = FALSE, + }, + { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .screenSize = BG_SCREEN_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf000, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 2, + .areaOver = 0, + .dummy = 0, + .mosaic = FALSE, + }, + { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .screenSize = BG_SCREEN_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe800, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 3, + .areaOver = 0, + .dummy = 0, + .mosaic = FALSE, + }, + { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .screenSize = BG_SCREEN_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xe000, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 0, + .areaOver = 0, + .dummy = 0, + .mosaic = FALSE, + }, + { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .screenSize = BG_SCREEN_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0xf800, + .charBase = GX_BG_CHARBASE_0x00000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 0, + .areaOver = 0, + .dummy = 0, + .mosaic = FALSE, + }, + }; + + for (int i = 0; i < NUM_BG_TEMPLATES; i++) { + static const int sBgLayers[NUM_BG_TEMPLATES] = { + // Must declared inline to match. + BG_LAYER_MAIN_0, + BG_LAYER_MAIN_1, + BG_LAYER_MAIN_2, + BG_LAYER_MAIN_3, + BG_LAYER_SUB_0, + }; + + Bg_InitFromTemplate(menuData->bgConfig, sBgLayers[i], &(bgTemplates[i]), BG_TYPE_STATIC); + Bg_ClearTilemap(menuData->bgConfig, sBgLayers[i]); + } + + Bg_ClearTilesRange(BG_LAYER_MAIN_0, 32, 0, menuData->heapID); + Bg_ClearTilesRange(BG_LAYER_SUB_0, 32, 0, menuData->heapID); +} + +static void TeardownBgs(OptionsMenuData *menuData) +{ + Bg_FreeTilemapBuffer(menuData->bgConfig, BG_LAYER_SUB_0); + Bg_FreeTilemapBuffer(menuData->bgConfig, BG_LAYER_MAIN_3); + Bg_FreeTilemapBuffer(menuData->bgConfig, BG_LAYER_MAIN_2); + Bg_FreeTilemapBuffer(menuData->bgConfig, BG_LAYER_MAIN_1); + Bg_FreeTilemapBuffer(menuData->bgConfig, BG_LAYER_MAIN_0); + Heap_FreeToHeap(menuData->bgConfig); +} + +static void LoadBgTiles(OptionsMenuData *menuData) +{ + NNSG2dCharacterData *cursorTiles; + NNSG2dPaletteData *cursorPalette; + + NARC *narc = NARC_ctor(NARC_INDEX_GRAPHIC__CONFIG_GRA, menuData->heapID); + + u32 memberSize = NARC_GetMemberSize(narc, tiles_NCGR); + void *memberBuffer = Heap_AllocFromHeapAtEnd(menuData->heapID, memberSize); + NARC_ReadWholeMember(narc, tiles_NCGR, memberBuffer); + NNS_G2dGetUnpackedCharacterData(memberBuffer, &cursorTiles); + Bg_LoadTiles(menuData->bgConfig, BG_LAYER_MAIN_0, cursorTiles->pRawData, cursorTiles->szByte, 0); + Bg_LoadTiles(menuData->bgConfig, BG_LAYER_SUB_0, cursorTiles->pRawData, cursorTiles->szByte, 0); + Heap_FreeToHeap(memberBuffer); + + memberSize = NARC_GetMemberSize(narc, tiles_NCLR); + memberBuffer = Heap_AllocFromHeapAtEnd(menuData->heapID, memberSize); + NARC_ReadWholeMember(narc, tiles_NCLR, memberBuffer); + NNS_G2dGetUnpackedPaletteData(memberBuffer, &cursorPalette); + Bg_LoadPalette(BG_LAYER_MAIN_0, cursorPalette->pRawData, PALETTE_SIZE_BYTES, 0); + Bg_LoadPalette(BG_LAYER_SUB_0, cursorPalette->pRawData, PALETTE_SIZE_BYTES, 0); + Heap_FreeToHeap(memberBuffer); + + memberSize = NARC_GetMemberSize(narc, tilemap_bin); + menuData->nscrBuffer = Heap_AllocFromHeap(menuData->heapID, memberSize); + NARC_ReadWholeMember(narc, tilemap_bin, menuData->nscrBuffer); + NNS_G2dGetUnpackedScreenData(menuData->nscrBuffer, &(menuData->tilemapData)); + + NARC_dtor(narc); + + Bg_FillTilemapRect(menuData->bgConfig, + BG_LAYER_MAIN_2, + 1, + 0, + 0, + 32, + 32, + TILEMAP_FILL_VAL_INCLUDES_PALETTE); + Bg_FillTilemapRect(menuData->bgConfig, + BG_LAYER_SUB_0, + 1, + 0, + 0, + 32, + 32, + TILEMAP_FILL_VAL_INCLUDES_PALETTE); + + Bg_CopyRectToTilemapRect(menuData->bgConfig, + BG_LAYER_MAIN_0, + 0, + 0, + 32, + 2, + menuData->tilemapData->rawData, + 0, + 0, + menuData->tilemapData->screenWidth / 8, + menuData->tilemapData->screenHeight / 8); + + Bg_SetOffset(menuData->bgConfig, BG_LAYER_MAIN_0, BG_OFFSET_UPDATE_SET_Y, -FIRST_ENTRY_OFFSET); + Bg_ScheduleTilemapTransfer(menuData->bgConfig, BG_LAYER_MAIN_2); + Bg_ScheduleTilemapTransfer(menuData->bgConfig, BG_LAYER_MAIN_0); + Bg_ScheduleTilemapTransfer(menuData->bgConfig, BG_LAYER_SUB_0); +} + +static void TeardownTilemaps(OptionsMenuData *menuData) +{ + Heap_FreeToHeap(menuData->nscrBuffer); +} + +static void SetupWindows(OptionsMenuData *menuData) +{ + Window_Add(menuData->bgConfig, + &menuData->windows.title, + BG_LAYER_MAIN_1, + 1, + 0, + MENU_TITLE_WIDTH, + MENU_TITLE_HEIGHT, + 13, + MENU_TITLE_BASE_TILE); + Window_Add(menuData->bgConfig, + &menuData->windows.entries, + BG_LAYER_MAIN_1, + 1, + 3, + ENTRIES_WIDTH, + ENTRIES_HEIGHT, + 13, + ENTRIES_BASE_TILE); + Window_Add(menuData->bgConfig, + &menuData->windows.description, + BG_LAYER_MAIN_1, + 2, + 19, + DESCRIPTION_WIDTH, + DESCRIPTION_HEIGHT, + 12, + DESCRIPTION_BASE_TILE); + LoadStandardWindowGraphics(menuData->bgConfig, + BG_LAYER_MAIN_1, + STANDARD_WINDOW_BASE_TILE, + 14, + STANDARD_WINDOW_SYSTEM, + menuData->heapID); + LoadMessageBoxGraphics(menuData->bgConfig, + BG_LAYER_MAIN_1, + MESSAGE_BOX_BASE_TILE, + 15, + menuData->options.messageBoxStyle, + menuData->heapID); + + Font_LoadTextPalette(PAL_LOAD_MAIN_BG, PLTT_OFFSET(13), menuData->heapID); + Font_LoadTextPalette(PAL_LOAD_SUB_BG, PLTT_OFFSET(13), menuData->heapID); + Font_LoadScreenIndicatorsPalette(PAL_LOAD_MAIN_BG, PLTT_OFFSET(12), menuData->heapID); + Font_LoadScreenIndicatorsPalette(PAL_LOAD_SUB_BG, PLTT_OFFSET(12), menuData->heapID); + + Window_FillTilemap(&menuData->windows.title, PIXEL_FILL(0)); + Window_FillTilemap(&menuData->windows.entries, PIXEL_FILL(15)); + Window_FillTilemap(&menuData->windows.description, PIXEL_FILL(15)); + Window_ClearTilemap(&menuData->windows.description); + Window_ClearTilemap(&menuData->windows.entries); + Window_ClearTilemap(&menuData->windows.title); + + Window_DrawStandardFrame(&menuData->windows.entries, TRUE, STANDARD_WINDOW_BASE_TILE, 14); + Window_DrawMessageBoxWithScrollCursor(&menuData->windows.description, TRUE, MESSAGE_BOX_BASE_TILE, 15); +} + +static void TeardownWindows(OptionsMenuData *menuData) +{ + Window_EraseStandardFrame(&menuData->windows.entries, FALSE); + Window_EraseMessageBox(&menuData->windows.description, FALSE); + + for (u16 i = 0; i < 3; i++) { + Window_ClearAndCopyToVRAM(&menuData->windows.asArray[i]); + Window_FillTilemap(&menuData->windows.asArray[i], 0); + Window_ClearTilemap(&menuData->windows.asArray[i]); + Window_Remove(&menuData->windows.asArray[i]); + } +} + +static const u8 sEntryLabels[MAX_ENTRIES] = { + options_menu_text_speed_label, + options_menu_sound_mode_label, + options_menu_battle_scene_label, + options_menu_battle_style_label, + options_menu_button_mode_label, + options_menu_message_box_style_label, + options_menu_close_label, +}; + +static void PrintTitleAndEntries(OptionsMenuData *menuData) +{ + u16 i; // Must forward-declare to match + TextColor transparentBg = TEXT_COLOR(1, 2, 0); + TextColor whiteBg = TEXT_COLOR(1, 2, 15); + + Strbuf *strbuf = Strbuf_Init(256, menuData->heapID); + MessageLoader_GetStrbuf(menuData->msgLoader, options_menu_title, strbuf); + Text_AddPrinterWithParamsAndColor(&menuData->windows.title, + FONT_SYSTEM, + strbuf, + 2, + 2, + TEXT_SPEED_INSTANT, + transparentBg, + NULL); + + for (i = 0; i < MAX_ENTRIES; i++) { + Strbuf_Clear(strbuf); + MessageLoader_GetStrbuf(menuData->msgLoader, sEntryLabels[i], strbuf); + Text_AddPrinterWithParamsAndColor(&menuData->windows.entries, + FONT_SYSTEM, + strbuf, + 4, + 16 * i, + TEXT_SPEED_NO_TRANSFER, + whiteBg, + NULL); + } + + for (i = 0; i < MAX_ENTRIES; i++) { + PrintEntryChoices(menuData, i); + } + + PrintEntryDescription(menuData, ENTRY_TEXT_SPEED, TRUE); + Window_CopyToVRAM(&menuData->windows.title); + Window_CopyToVRAM(&menuData->windows.entries); + Strbuf_Free(strbuf); +} + +static const int sNumChoicesPerEntry[MAX_ENTRIES] = { + 3, + 2, + 2, + 2, + 3, + 20, + 0, +}; + +static const u8 sFirstChoicePerEntry[MAX_ENTRIES] = { + options_menu_text_speed_slow, + options_menu_sound_mode_stereo, + options_menu_battle_scene_on, + options_menu_battle_style_shift, + options_menu_button_mode_normal, + options_menu_message_box_style_01, + NULL, +}; + +static void LoadAllEntryChoices(OptionsMenuData *menuData) +{ + u16 i, j; + for (i = 0; i < MAX_ENTRIES; i++) { + menuData->entries.asArray[i].numChoices = sNumChoicesPerEntry[i]; + for (j = 0; j < sNumChoicesPerEntry[i]; j++) { + menuData->entries.asArray[i].choices[j] = MessageLoader_GetNewStrbuf(menuData->msgLoader, sFirstChoicePerEntry[i] + j); + } + } + + menuData->entries.textSpeed.selected = menuData->options.textSpeed; + menuData->entries.battleScene.selected = menuData->options.battleScene; + menuData->entries.battleStyle.selected = menuData->options.battleStyle; + menuData->entries.soundMode.selected = menuData->options.soundMode; + menuData->entries.buttonMode.selected = menuData->options.buttonMode; + menuData->entries.messageBoxStyle.selected = menuData->options.messageBoxStyle; +} + +static const s8 sEntryXOffsets[] = { 0, 0, 0, 0, 0, 0, 0 }; + +static void PrintEntryChoices(OptionsMenuData *menuData, u16 entry) +{ + TextColor darkGray, red, color; + u16 i; + u8 textSpeed; + s8 xOffset = 0; + + darkGray = TEXT_COLOR(1, 2, 15); + red = TEXT_COLOR(3, 4, 15); + + Window_FillRectWithColor(&menuData->windows.entries, PIXEL_FILL(15), CHOICES_X + sEntryXOffsets[entry], entry * SINGLE_ENTRY_HEIGHT, CHOICES_WIDTH, SINGLE_ENTRY_HEIGHT); + if (entry == ENTRY_MESSAGE_BOX_FRAME) { + Text_AddPrinterWithParamsAndColor(&menuData->windows.entries, + FONT_SYSTEM, + menuData->entries.asArray[entry].choices[menuData->entries.asArray[entry].selected], + 48 + CHOICES_X, + entry * SINGLE_ENTRY_HEIGHT, + TEXT_SPEED_NO_TRANSFER, + red, + NULL); + Window_CopyToVRAM(&menuData->windows.entries); + menuData->redrawMessageBox = TRUE; + return; + } + + if (entry == ENTRY_SOUND_MODE) { + Sound_SetPlaybackMode(menuData->entries.asArray[entry].selected); + } else if (entry == ENTRY_BUTTON_MODE) { + Options_SetSystemButtonMode(NULL, menuData->entries.asArray[entry].selected); + } else if (entry == ENTRY_TEXT_SPEED) { + Options_SetTextSpeed(menuData->saveOptions, menuData->entries.asArray[entry].selected); + PrintEntryDescription(menuData, entry, FALSE); + } + + xOffset = 0; + for (i = 0; i < menuData->entries.asArray[entry].numChoices; i++) { + if (i == menuData->entries.asArray[entry].selected) { + color = red; + } else { + color = darkGray; + } + + if (i == menuData->entries.asArray[entry].numChoices - 1) { + textSpeed = TEXT_SPEED_NO_TRANSFER; + } else { + textSpeed = TEXT_SPEED_NO_TRANSFER; + } + + if (entry == ENTRY_BUTTON_MODE) { + Text_AddPrinterWithParamsAndColor(&menuData->windows.entries, + FONT_SYSTEM, + menuData->entries.asArray[entry].choices[i], + xOffset + CHOICES_X, + entry * SINGLE_ENTRY_HEIGHT, + textSpeed, + color, + NULL); + xOffset += Font_CalcStrbufWidth(FONT_SYSTEM, menuData->entries.asArray[entry].choices[i], 0) + 12; + } else { + Text_AddPrinterWithParamsAndColor(&menuData->windows.entries, + FONT_SYSTEM, + menuData->entries.asArray[entry].choices[i], + i * 48 + CHOICES_X + sEntryXOffsets[entry], + entry * SINGLE_ENTRY_HEIGHT, + textSpeed, + color, + NULL); + } + } + + Window_CopyToVRAM(&menuData->windows.asArray[1]); +} + +static void PrintBankEntryAsDescription(OptionsMenuData *menuData, u16 entry, BOOL scheduleVRAMCopy) +{ + // Kill any active printer + if (IsTextPrinterDone(menuData) == FALSE) { + Text_RemovePrinter(menuData->textPrinter); + } + + u8 renderDelay = Options_TextFrameDelay(menuData->saveOptions); + + Window_FillTilemap(&menuData->windows.description, 15); + + TextColor color = TEXT_COLOR(1, 2, 15); + Strbuf *strbuf = Strbuf_Init(256, menuData->heapID); + MessageLoader_GetStrbuf(menuData->msgLoader, entry, strbuf); + + if (scheduleVRAMCopy == FALSE) { + menuData->textPrinter = Text_AddPrinterWithParamsAndColor(&menuData->windows.description, + FONT_MESSAGE, + strbuf, + 4, + 0, + renderDelay, + color, + NULL); + } else { + Text_AddPrinterWithParamsAndColor(&menuData->windows.description, + FONT_MESSAGE, + strbuf, + 4, + 0, + TEXT_SPEED_NO_TRANSFER, + color, + NULL); + Window_ScheduleCopyToVRAM(&menuData->windows.description); + } + + Strbuf_Free(strbuf); +} + +static BOOL IsTextPrinterDone(const OptionsMenuData *menuData) +{ + return Text_IsPrinterActive(menuData->textPrinter) == FALSE; +} + +static void ProcessMainInput(OptionsMenuData *menuData) +{ + OptionsMenuEntry *entry = &menuData->entries.asArray[menuData->cursor]; + + if (menuData->cursor != ENTRY_CLOSE) { + if (JOY_NEW(PAD_KEY_RIGHT)) { + entry->selected = (entry->selected + 1) % entry->numChoices; + PrintEntryChoices(menuData, menuData->cursor); + Sound_PlayEffect(SEQ_SE_CONFIRM); + } else if (JOY_NEW(PAD_KEY_LEFT)) { + entry->selected = (entry->selected + entry->numChoices - 1) % entry->numChoices; + PrintEntryChoices(menuData, menuData->cursor); + Sound_PlayEffect(SEQ_SE_CONFIRM); + } + } + + if (JOY_NEW(PAD_KEY_UP)) { + menuData->cursor = (menuData->cursor + 7 - 1) % 7; + Bg_ScheduleScroll(menuData->bgConfig, + BG_LAYER_MAIN_0, + BG_OFFSET_UPDATE_SET_Y, + -(menuData->cursor * SINGLE_ENTRY_HEIGHT + FIRST_ENTRY_OFFSET)); + + PrintEntryDescription(menuData, menuData->cursor, TRUE); + Sound_PlayEffect(SEQ_SE_CONFIRM); + } else if (JOY_NEW(PAD_KEY_DOWN)) { + menuData->cursor = (menuData->cursor + 1) % 7; + Bg_ScheduleScroll(menuData->bgConfig, + BG_LAYER_MAIN_0, + BG_OFFSET_UPDATE_SET_Y, + -(menuData->cursor * SINGLE_ENTRY_HEIGHT + FIRST_ENTRY_OFFSET)); + + PrintEntryDescription(menuData, menuData->cursor, TRUE); + Sound_PlayEffect(SEQ_SE_CONFIRM); + } +} + +static BOOL ChangesWereMade(OptionsMenuData *menuData) +{ + return menuData->options.textSpeed != menuData->entries.textSpeed.selected + || menuData->options.battleScene != menuData->entries.battleScene.selected + || menuData->options.battleStyle != menuData->entries.battleStyle.selected + || menuData->options.soundMode != menuData->entries.soundMode.selected + || menuData->options.buttonMode != menuData->entries.buttonMode.selected + || menuData->options.messageBoxStyle != menuData->entries.messageBoxStyle.selected; +} + +static const WindowTemplate sConfirmationWindowTemplate = { + .bgLayer = BG_LAYER_MAIN_3, + .tilemapLeft = 25, + .tilemapTop = 13, + .width = 6, + .height = 4, + .palette = 13, + .baseTile = CONFIRMATION_BASE_TILE, +}; + +static void DrawConfirmationPrompt(OptionsMenuData *menuData) +{ + menuData->yesNoChoice = Menu_MakeYesNoChoice(menuData->bgConfig, + &sConfirmationWindowTemplate, + STANDARD_WINDOW_BASE_TILE, + 14, + menuData->heapID); +} + +static u32 ProcessConfirmationInput(OptionsMenuData *menuData) +{ + return Menu_ProcessInputAndHandleExit(menuData->yesNoChoice, menuData->heapID); +} + +static const u8 sEntryDescriptions[MAX_ENTRIES] = { + options_menu_text_speed_description, + options_menu_sound_mode_description, + options_menu_battle_scene_description, + options_menu_battle_style_description, + options_menu_button_mode_description, + options_menu_message_box_style_description, + options_menu_close_description, +}; + +static void PrintEntryDescription(OptionsMenuData *menuData, u16 entry, BOOL scheduleVRAMCopy) +{ + PrintBankEntryAsDescription(menuData, sEntryDescriptions[entry], scheduleVRAMCopy); +} diff --git a/src/ascii_util.c b/src/ascii_util.c index d37f545c46..6f5cf33e99 100644 --- a/src/ascii_util.c +++ b/src/ascii_util.c @@ -78,5 +78,5 @@ void Ascii_SetResourceName(NNSG3dResName *resource, const char *src) BOOL IsFullWidthChar(charcode_t character) { - return character < CHAR_EN_0; + return character < CHAR_0; } diff --git a/src/battle/battle_controller.c b/src/battle/battle_controller.c index cc260ce882..d49c87cccf 100644 --- a/src/battle/battle_controller.c +++ b/src/battle/battle_controller.c @@ -1481,7 +1481,7 @@ static void BattleController_CheckMonConditions(BattleSystem *battleSys, BattleC break; case MON_COND_CHECK_STATE_BAD_DREAMS: - battleCtx->scriptTemp = BattleSystem_CountAbility(battleSys, battleCtx, 4, battler, ABILITY_BAD_DREAMS); + battleCtx->scriptTemp = BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS_THEIR_SIDE_FLAG, battler, ABILITY_BAD_DREAMS); if ((battleCtx->battleMons[battler].status & MON_CONDITION_SLEEP) && Battler_Ability(battleCtx, battler) != ABILITY_MAGIC_GUARD @@ -2237,19 +2237,19 @@ static BOOL BattleController_DecrementPP(BattleSystem *battleSys, BattleContext int ppCost = 1; if (ATTACKER_SELF_TURN_FLAGS.skipPressureCheck == FALSE && battleCtx->defender != BATTLER_NONE) { if (battleCtx->moveTemp == MOVE_IMPRISON) { - ppCost += BattleSystem_CountAbility(battleSys, battleCtx, 3, battleCtx->attacker, ABILITY_PRESSURE); + ppCost += BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS_THEIR_SIDE, battleCtx->attacker, ABILITY_PRESSURE); } else { switch (battleCtx->aiContext.moveTable[battleCtx->moveTemp].range) { case RANGE_ALL_ADJACENT: case RANGE_FIELD: // Number of mons on the field with Pressure - ppCost += BattleSystem_CountAbility(battleSys, battleCtx, 9, battleCtx->attacker, ABILITY_PRESSURE); + ppCost += BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS_EXCEPT_ME, battleCtx->attacker, ABILITY_PRESSURE); break; case RANGE_ADJACENT_OPPONENTS: case RANGE_OPPONENT_SIDE: // Number of mons on the enemy side with Pressure - ppCost += BattleSystem_CountAbility(battleSys, battleCtx, 3, battleCtx->attacker, ABILITY_PRESSURE); + ppCost += BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS_THEIR_SIDE, battleCtx->attacker, ABILITY_PRESSURE); break; case RANGE_USER_SIDE: @@ -4033,7 +4033,7 @@ static void BattleController_HandleResult(BattleSystem *battleSys, BattleContext static void BattleController_ScreenWipe(BattleSystem *battleSys, BattleContext *battleCtx) { - if (ScreenWipe_Done() == TRUE) { + if (IsScreenTransitionDone() == TRUE) { battleCtx->command = BATTLE_CONTROL_FIGHT_END; } } diff --git a/src/battle/battle_display.c b/src/battle/battle_display.c index 4957a5812e..b644bad488 100644 --- a/src/battle/battle_display.c +++ b/src/battle/battle_display.c @@ -132,6 +132,7 @@ #include "palette.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" @@ -141,7 +142,6 @@ #include "unk_0200762C.h" #include "unk_0200A9DC.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_020131EC.h" #include "unk_0201567C.h" #include "unk_02015F84.h" @@ -1356,7 +1356,7 @@ void ov16_0225E23C(BattleSystem *param0, BattlerData *param1) v1.tags = 0; BattleMessage_Print(param0, v0, &v1, NULL); - Battle_SetWaitDial(param0, sub_0200E7FC(BattleSystem_Window(param0, 0), 1)); + Battle_SetWaitDial(param0, Window_AddWaitDial(BattleSystem_Window(param0, 0), 1)); } ClearCommand(param0, param1->battler, 55); @@ -4755,7 +4755,7 @@ static void ov16_022629DC(SysTask *param0, void *param1) if (v1 == -1) { if (v0->unk_4E >= 8) { - sub_020057A4(1803, 0); + Sound_StopEffect(1803, 0); v0->state = 100; } else { v0->state++; @@ -4766,7 +4766,7 @@ static void ov16_022629DC(SysTask *param0, void *param1) v0->unk_4E++; if (v0->unk_4E >= 8) { - sub_020057A4(1803, 0); + Sound_StopEffect(1803, 0); v0->state = 100; } break; @@ -5017,7 +5017,7 @@ static void WaitForBattleMessagePrint(SysTask *task, void *data) BattleMessageWaitTask *waitTask = data; if (Battle_WaitDial(waitTask->battleSys)) { - DeleteWaitDial(Battle_WaitDial(waitTask->battleSys)); + DestroyWaitDial(Battle_WaitDial(waitTask->battleSys)); Battle_SetWaitDial(waitTask->battleSys, NULL); } diff --git a/src/battle/battle_io.c b/src/battle/battle_io.c index 3c6f3c6f0f..55d80d7a6d 100644 --- a/src/battle/battle_io.c +++ b/src/battle/battle_io.c @@ -1600,7 +1600,7 @@ void ov16_02266B78(BattleSystem *param0, BattleContext *param1, UnkStruct_ov16_0 param2->unk_0C = param1->battleMons[param5].friendship; - if ((BattleSystem_CountAbility(param0, param1, 8, 0, 13) == 0) && (BattleSystem_CountAbility(param0, param1, 8, 0, 76) == 0)) { + if ((BattleSystem_CountAbility(param0, param1, COUNT_ALIVE_BATTLERS, 0, ABILITY_CLOUD_NINE) == 0) && (BattleSystem_CountAbility(param0, param1, COUNT_ALIVE_BATTLERS, 0, ABILITY_AIR_LOCK) == 0)) { param2->unk_10 = param1->fieldConditionsMask; } else { param2->unk_10 = 0; diff --git a/src/battle/battle_io_command.c b/src/battle/battle_io_command.c index 086a8d443e..2ebe930aa6 100644 --- a/src/battle/battle_io_command.c +++ b/src/battle/battle_io_command.c @@ -628,27 +628,27 @@ static void ov16_0225C47C(BattleSystem *param0, BattlerData *param1) v2 = BattleSystem_PartyPokemon(param0, param1->battler, v0->unk_01_0); if ((v0->unk_18 & 0x200000) == 0) { - for (v1 = 0; v1 < 4; v1++) { + for (v1 = 0; v1 < LEARNED_MOVES_MAX; v1++) { if ((v0->unk_01_4 & FlagIndex(v1)) == 0) { - Pokemon_SetValue(v2, 54 + v1, (u8 *)&v0->unk_0E[v1]); - Pokemon_SetValue(v2, 58 + v1, (u8 *)&v0->unk_12[v1]); + Pokemon_SetValue(v2, MON_DATA_MOVE1 + v1, (u8 *)&v0->unk_0E[v1]); + Pokemon_SetValue(v2, MON_DATA_MOVE1_CUR_PP + v1, (u8 *)&v0->unk_12[v1]); } } } if ((v0->unk_08 & FlagIndex(v0->unk_01_0)) == 0) { - Pokemon_SetValue(v2, 6, (u8 *)&v0->unk_0C); + Pokemon_SetValue(v2, MON_DATA_HELD_ITEM, (u8 *)&v0->unk_0C); } - Pokemon_SetValue(v2, 163, (u8 *)&v0->unk_02); - Pokemon_SetValue(v2, 160, (u8 *)&v0->unk_04); + Pokemon_SetValue(v2, MON_DATA_CURRENT_HP, (u8 *)&v0->unk_02); + Pokemon_SetValue(v2, MON_DATA_STATUS_CONDITION, (u8 *)&v0->unk_04); if (v0->unk_26) { - Pokemon_SetValue(v2, 112, (u8 *)&v0->unk_1C); + Pokemon_SetValue(v2, MON_DATA_FORM, (u8 *)&v0->unk_1C); } if (v0->unk_24) { - Pokemon_SetValue(v2, 10, (u8 *)&v0->unk_20); + Pokemon_SetValue(v2, MON_DATA_ABILITY, (u8 *)&v0->unk_20); Pokemon_CalcLevelAndStats(v2); } @@ -696,13 +696,13 @@ static void ov16_0225C5E0(BattleSystem *param0, BattlerData *param1) v1 = BattleSystem_PartyPokemon(param0, param1->battler, v2); if (v0->unk_01 == 104) { - v4 = 0; + v4 = ABILITY_NONE; } else { v4 = Pokemon_GetValue(v1, MON_DATA_ABILITY, NULL); } - if ((v0->unk_02 != 215) || ((v0->unk_02 == 215) && (v4 != 43))) { - Pokemon_SetValue(v1, 160, (u8 *)&v5); + if ((v0->unk_02 != 215) || ((v0->unk_02 == 215) && (v4 != ABILITY_SOUNDPROOF))) { + Pokemon_SetValue(v1, MON_DATA_STATUS_CONDITION, (u8 *)&v5); } } diff --git a/src/battle/battle_lib.c b/src/battle/battle_lib.c index 818a25eecd..d103fbe5eb 100644 --- a/src/battle/battle_lib.c +++ b/src/battle/battle_lib.c @@ -4357,7 +4357,7 @@ BOOL BattleSystem_TriggerAbilityOnHit(BattleSystem *battleSys, BattleContext *ba case ABILITY_AFTERMATH: if (battleCtx->defender == battleCtx->faintedMon && Battler_Ability(battleCtx, battleCtx->attacker) != ABILITY_MAGIC_GUARD - && BattleSystem_CountAbility(battleSys, battleCtx, 8, 0, ABILITY_DAMP) == 0 + && BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS, 0, ABILITY_DAMP) == 0 && (battleCtx->battleStatusMask2 & SYSCTL_UTURN_ACTIVE) == FALSE && ATTACKING_MON.curHP && (battleCtx->moveStatusFlags & MOVE_STATUS_NO_EFFECTS) == FALSE diff --git a/src/battle/battle_script.c b/src/battle/battle_script.c index 4f1e613e57..fab08a5ee7 100644 --- a/src/battle/battle_script.c +++ b/src/battle/battle_script.c @@ -62,6 +62,7 @@ #include "party.h" #include "pokemon.h" #include "pokemon_icon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -73,7 +74,6 @@ #include "unk_02006224.h" #include "unk_0200762C.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_0201567C.h" @@ -10138,11 +10138,11 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) BattleSystem_SetGaugePriority(data->battleSys, 0 + 2); // gauge's default is 0 - Window_SetFrame(bgl, 2, 1, 0, HEAP_ID_BATTLE); - PaletteData_LoadBufferFromFileStart(paletteSys, NARC_INDEX_GRAPHIC__PL_WINFRAME, Window_FramePalette(), HEAP_ID_BATTLE, 0, 0x20, 8 * 0x10); + LoadStandardWindowTiles(bgl, 2, 1, 0, HEAP_ID_BATTLE); + PaletteData_LoadBufferFromFileStart(paletteSys, NARC_INDEX_GRAPHIC__PL_WINFRAME, GetStandardWindowPaletteNARCMember(), HEAP_ID_BATTLE, 0, 0x20, 8 * 0x10); Window_Add(bgl, window, 2, 0x11, 0x7, 14, 12, 11, (9 + 1)); Window_FillTilemap(window, 0xFF); - Window_Show(window, 0, 1, 8); + Window_DrawStandardFrame(window, 0, 1, 8); data->seqNum = SEQ_GET_EXP_LEVEL_UP_SUMMARY_PRINT_DIFF; break; @@ -10218,7 +10218,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) case SEQ_GET_EXP_LEVEL_UP_CLEAR: { Window *window = BattleSystem_Window(data->battleSys, 1); - Window_Clear(window, 0); + Window_EraseStandardFrame(window, 0); Window_Remove(window); G2_SetBG0Priority(1); @@ -10922,7 +10922,7 @@ static void BattleScript_CatchMonTask(SysTask *param0, void *param1) v3 = BattleSystem_PartyPokemon(v2->battleSys, v1, v2->battleCtx->selectedPartySlot[v1]); if (v19->unk_14 == 0) { - Pokemon_SetValue(v3, 120, v19->unk_18); + Pokemon_SetValue(v3, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v19->unk_18); ov16_0223F24C(v2->battleSys, (1 + 48)); } @@ -10974,9 +10974,9 @@ static void BattleScript_CatchMonTask(SysTask *param0, void *param1) sub_02079A94(v24, v26); - for (v27 = 0; v27 < 4; v27++) { + for (v27 = 0; v27 < LEARNED_MOVES_MAX; v27++) { v28 = Pokemon_GetValue(v3, MON_DATA_MOVE1_MAX_PP + v27, NULL); - Pokemon_SetValue(v3, 58 + v27, &v28); + Pokemon_SetValue(v3, MON_DATA_MOVE1_CUR_PP + v27, &v28); } if (Pokemon_SetGiratinaForm(v3) != -1) { diff --git a/src/battle/ov16_0223B140.c b/src/battle/ov16_0223B140.c index 0f4b1c5ea8..aaed2c4ce8 100644 --- a/src/battle/ov16_0223B140.c +++ b/src/battle/ov16_0223B140.c @@ -57,6 +57,7 @@ #include "party.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -69,7 +70,6 @@ #include "unk_020093B4.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02014000.h" #include "unk_0201567C.h" @@ -320,7 +320,7 @@ void ov16_0223B3E4(BattleSystem *param0) sub_0200D0B0(param0->unk_90, param0->unk_94); sub_0200C8D4(param0->unk_90); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); Font_Free(FONT_SUBSCREEN); } @@ -445,10 +445,10 @@ void ov16_0223B578(BattleSystem *param0) v1 = ov16_0223EDE0(param0); - sub_0200E218(param0->unk_04, 1, 1, 10, v1, 5); + ReplaceTransparentTiles(param0->unk_04, 1, 1, 10, v1, 5); Graphics_LoadTilesToBgLayer(7, 3 + param0->unk_2400, param0->unk_04, 3, 0, 0, 1, 5); PaletteData_LoadBufferFromFileStart(param0->unk_28, 7, 172 + (param0->unk_2400 * 3) + ov16_0223EC04(param0), 5, 0, 0, 0); - PaletteData_LoadBufferFromFileStart(param0->unk_28, 38, sub_0200DD08(v1), 5, 0, 0x20, 10 * 0x10); + PaletteData_LoadBufferFromFileStart(param0->unk_28, 38, GetMessageBoxPaletteNARCMember(v1), 5, 0, 0x20, 10 * 0x10); PaletteData_LoadBufferFromFileStart(param0->unk_28, 14, 7, 5, 0, 0x20, 0xb * 0x10); Graphics_LoadTilemapToBgLayer(7, 2, param0->unk_04, 3, 0, 0, 1, 5); } @@ -470,7 +470,7 @@ void ov16_0223B578(BattleSystem *param0) Window_Add(param0->unk_04, param0->windows, 1, 0x2, 0x13, 27, 4, 0xb, (18 + 12) + 1); Window_FillTilemap(param0->windows, 0xff); - sub_0200E060(¶m0->windows[0], 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->windows[0], 0, 1, 10); ov16_0223DD4C(param0); } @@ -555,7 +555,7 @@ static void ov16_0223B790(OverlayManager *param0) v0->unk_1CC[v3].unk_00 = Heap_AllocFromHeap(5, (32 * 10 * 10)); } - sub_0201DBEC(64, 5); + VRAMTransferManager_New(64, 5); { NARC *v6 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 5); @@ -571,7 +571,7 @@ static void ov16_0223B790(OverlayManager *param0) Window_Add(v0->unk_04, &v0->windows[0], 1, 2, 0x13, 27, 4, 11, ((18 + 12) + 1)); Window_FillTilemap(&v0->windows[0], 0xff); - sub_0200E060(&v0->windows[0], 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(&v0->windows[0], 0, 1, 10); v0->unk_90 = sub_0200C6E4(5); @@ -796,7 +796,7 @@ static void ov16_0223BCB4(OverlayManager *param0) LCRNG_SetSeed(v0->unk_2430); if (ov16_0223F450(v0)) { - sub_020057A4(1796, 0); + Sound_StopEffect(1796, 0); } sub_0201DCF0(v0->cellTransferState); @@ -930,10 +930,10 @@ static void ov16_0223C004(BattleSystem *param0, BgConfig *param1) v3 = ov16_0223EDE0(param0); - sub_0200E218(param1, 1, 1, 10, v3, 5); + ReplaceTransparentTiles(param1, 1, 1, 10, v3, 5); Graphics_LoadTilesToBgLayer(7, 3 + param0->unk_2400, param1, 3, 0, 0, 1, 5); PaletteData_LoadBufferFromFileStart(param0->unk_28, 7, 172 + (param0->unk_2400 * 3) + ov16_0223EC04(param0), 5, 0, 0, 0); - PaletteData_LoadBufferFromFileStart(param0->unk_28, 38, sub_0200DD08(v3), 5, 0, 0x20, 10 * 0x10); + PaletteData_LoadBufferFromFileStart(param0->unk_28, 38, GetMessageBoxPaletteNARCMember(v3), 5, 0, 0x20, 10 * 0x10); PaletteData_LoadBufferFromFileStart(param0->unk_28, 14, 7, 5, 0, 0x20, 0xb * 0x10); Graphics_LoadTilemapToBgLayer(7, 2, param1, 3, 0, 0, 1, 5); } @@ -1126,7 +1126,7 @@ static void ov16_0223C2C0(BattleSystem *param0, BattleParams *param1) for (v1 = 0; v1 < Party_GetCurrentCount(param1->parties[v0]); v1++) { v3 = Party_GetPokemonBySlotIndex(param1->parties[v0], v1); v5 = Pokemon_GetGender(v3); - Pokemon_SetValue(v3, 111, &v5); + Pokemon_SetValue(v3, MON_DATA_GENDER, &v5); } } } @@ -1522,7 +1522,7 @@ static void ov16_0223CE68(void *param0) sub_02008A94(v0->unk_88); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_28); Bg_RunScheduledUpdates(v0->unk_04); @@ -1579,7 +1579,7 @@ static void ov16_0223CF8C(SysTask *param0, void *param1) if (v6 & 2) { if (v6 & 1) { - sub_020057A4(1796, 0); + Sound_StopEffect(1796, 0); BattleSystem_SetRedHPSoundFlag(v0, 2); } @@ -1605,7 +1605,7 @@ static void ov16_0223CF8C(SysTask *param0, void *param1) BattleSystem_SetRedHPSoundFlag(v0, 1); ov16_0223F48C(v0, 4); } else if ((v5 == 0) && (ov16_0223F450(v0))) { - sub_020057A4(1796, 0); + Sound_StopEffect(1796, 0); BattleSystem_SetRedHPSoundFlag(v0, 0); } @@ -1722,9 +1722,9 @@ static void ov16_0223D10C(OverlayManager *param0, BattleParams *param1) v4 = Options_Frame(param1->unk_108); - sub_0200E218(v0->unk_04, 1, 1, 10, v4, 5); + ReplaceTransparentTiles(v0->unk_04, 1, 1, 10, v4, 5); PaletteData_LoadBufferFromFileStart(v0->unk_0C, 14, 7, 5, 0, 0x20, 0xb * 0x10); - PaletteData_LoadBufferFromFileStart(v0->unk_0C, 38, sub_0200DD08(v4), 5, 0, 0x20, 10 * 0x10); + PaletteData_LoadBufferFromFileStart(v0->unk_0C, 38, GetMessageBoxPaletteNARCMember(v4), 5, 0, 0x20, 10 * 0x10); PaletteData_FillBufferRange(v0->unk_0C, 0, 0, 0x0, 0, 256); } @@ -1732,7 +1732,7 @@ static void ov16_0223D10C(OverlayManager *param0, BattleParams *param1) GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); Window_Add(v0->unk_04, v0->unk_08, 1, 2, 0x13, 27, 4, 11, ((18 + 12) + 1)); Window_FillTilemap(v0->unk_08, 0xff); - sub_0200E060(v0->unk_08, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(v0->unk_08, 0, 1, 10); { MessageLoader *v5; @@ -1751,7 +1751,7 @@ static void ov16_0223D10C(OverlayManager *param0, BattleParams *param1) SetMainCallback(ov16_0223CF1C, v0); PaletteData_StartFade(v0->unk_0C, (0x1 | 0x4), 0xffff, 0, 16, 0, 0x0); - v0->unk_1024 = sub_0200E7FC(v0->unk_08, 1); + v0->unk_1024 = Window_AddWaitDial(v0->unk_08, 1); ov16_0223DECC(); } @@ -1974,7 +1974,7 @@ static BOOL ov16_0223D354(OverlayManager *param0) case 33: if (PaletteData_GetSelectedBuffersMask(v0->unk_0C) == 0) { v1 = 1; - DeleteWaitDial(v0->unk_1024); + DestroyWaitDial(v0->unk_1024); sub_02036378(0); } break; diff --git a/src/battle/ov16_0223DF00.c b/src/battle/ov16_0223DF00.c index 14e61997f2..1aa5d4beef 100644 --- a/src/battle/ov16_0223DF00.c +++ b/src/battle/ov16_0223DF00.c @@ -9,6 +9,7 @@ #include "constants/items.h" #include "consts/battle.h" #include "consts/game_records.h" +#include "consts/species.h" #include "struct_decls/battle_system.h" #include "struct_decls/pokedexdata_decl.h" @@ -661,7 +662,7 @@ BOOL BattleSystem_UseBagItem(BattleSystem *battleSys, int battler, int partySlot param = Pokemon_GetValue(mon, MON_DATA_STATUS_CONDITION, NULL); if (param & MON_CONDITION_PARALYSIS) { param &= ~MON_CONDITION_PARALYSIS; - Pokemon_SetValue(mon, 160, ¶m); + Pokemon_SetValue(mon, MON_DATA_STATUS_CONDITION, ¶m); if (selectedSlot == partySlot || targetSlot == partySlot) { param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); @@ -1072,37 +1073,37 @@ void ov16_0223EE70(BattleSystem *param0) v2 = BattleSystem_PartyPokemon(param0, 0, v0); v3 = Pokemon_GetValue(v2, MON_DATA_SPECIES_EGG, NULL); - if ((v3 == 412) && (param0->unk_2414[0] & FlagIndex(v0))) { + if ((v3 == SPECIES_BURMY) && (param0->unk_2414[0] & FlagIndex(v0))) { switch (BattleSystem_Terrain(param0)) { default: - case 2: + case TERRAIN_GRASS: v1 = 0; break; - case 0: - case 1: - case 4: - case 5: - case 17: - case 23: + case TERRAIN_PLAIN: + case TERRAIN_SAND: + case TERRAIN_MOUNTAIN: + case TERRAIN_CAVE: + case TERRAIN_DISTORTION_WORLD: + case TERRAIN_GIRATINA: v1 = 1; break; - case 9: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 18: - case 19: - case 20: - case 21: - case 22: + case TERRAIN_BUILDING: + case TERRAIN_BRIDGE: + case TERRAIN_AARON: + case TERRAIN_BERTHA: + case TERRAIN_FLINT: + case TERRAIN_LUCIAN: + case TERRAIN_CYNTHIA: + case TERRAIN_BATTLE_TOWER: + case TERRAIN_BATTLE_FACTORY: + case TERRAIN_BATTLE_ARCADE: + case TERRAIN_BATTLE_CASTLE: + case TERRAIN_BATTLE_HALL: v1 = 2; break; } - Pokemon_SetValue(v2, 112, &v1); + Pokemon_SetValue(v2, MON_DATA_FORM, &v1); } } } @@ -1567,7 +1568,7 @@ void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag) ov16_0226CEB0(battleSys->unk_198, flag); - sub_0200F174(3, 0, 0, 0, 16, 2, 5); + StartScreenTransition(3, 0, 0, 0, 16, 2, 5); sub_0200569C(); sub_0200500C(0); @@ -1721,7 +1722,7 @@ void ov16_0223F9A0(BattleSystem *param0, int param1) BOOL BattleSystem_CaughtSpecies(BattleSystem *battleSys, int species) { - return Pokedex_HasCaught(battleSys->pokedex, species); + return Pokedex_HasCaughtSpecies(battleSys->pokedex, species); } void Battle_SetDefaultBlend(void) diff --git a/src/battle/ov16_0226871C.c b/src/battle/ov16_0226871C.c index 11c8342d2d..4442b89ad3 100644 --- a/src/battle/ov16_0226871C.c +++ b/src/battle/ov16_0226871C.c @@ -46,6 +46,7 @@ #include "pokemon.h" #include "pokemon_icon.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -54,7 +55,6 @@ #include "touch_screen.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_02012744.h" #include "unk_02017728.h" #include "unk_0201D15C.h" @@ -4582,7 +4582,7 @@ void ov16_0226CEB0(UnkStruct_ov16_02268A14 *param0, int param1) GF_ASSERT(param0->unk_66B == 18); - sub_0200DAA4(v0, 5, 0x20, 1, 0, 5); + LoadStandardWindowGraphics(v0, 5, 0x20, 1, 0, 5); PaletteData_LoadBufferFromHardware(v1, 1, 1 * 16, 0x20); { diff --git a/src/charcode_util.c b/src/charcode_util.c index 86ccf5f9fb..a461afe39d 100644 --- a/src/charcode_util.c +++ b/src/charcode_util.c @@ -8,22 +8,22 @@ #include "charcode.h" static const charcode_t sHexadecimalDigits[] = { - CHAR_JP_0, - CHAR_JP_1, - CHAR_JP_2, - CHAR_JP_3, - CHAR_JP_4, - CHAR_JP_5, - CHAR_JP_6, - CHAR_JP_7, - CHAR_JP_8, - CHAR_JP_9, - CHAR_JP_A, - CHAR_JP_B, - CHAR_JP_C, - CHAR_JP_D, - CHAR_JP_E, - CHAR_JP_F, + CHAR_WIDE_0, + CHAR_WIDE_1, + CHAR_WIDE_2, + CHAR_WIDE_3, + CHAR_WIDE_4, + CHAR_WIDE_5, + CHAR_WIDE_6, + CHAR_WIDE_7, + CHAR_WIDE_8, + CHAR_WIDE_9, + CHAR_WIDE_A, + CHAR_WIDE_B, + CHAR_WIDE_C, + CHAR_WIDE_D, + CHAR_WIDE_E, + CHAR_WIDE_F, }; static const int sPowersOfTen[] = { @@ -129,14 +129,14 @@ charcode_t *CharCode_FromInt(charcode_t *str, s32 i, enum PaddingMode paddingMod diff = i - (j * digit); if (paddingMode == PADDING_MODE_ZEROES) { - *str = digit >= 10 ? CHAR_JP_QUESTION : sHexadecimalDigits[digit]; + *str = digit >= 10 ? CHAR_WIDE_QUESTION : sHexadecimalDigits[digit]; str++; } else if (digit != 0 || j == 1) { paddingMode = PADDING_MODE_ZEROES; - *str = digit >= 10 ? CHAR_JP_QUESTION : sHexadecimalDigits[digit]; + *str = digit >= 10 ? CHAR_WIDE_QUESTION : sHexadecimalDigits[digit]; str++; } else if (paddingMode == PADDING_MODE_SPACES) { - *str = CHAR_JP_SPACE; + *str = CHAR_WIDE_SPACE; str++; } diff --git a/src/choose_starter/choose_starter_app.c b/src/choose_starter/choose_starter_app.c index ad665bf923..5f80590b69 100644 --- a/src/choose_starter/choose_starter_app.c +++ b/src/choose_starter/choose_starter_app.c @@ -9,7 +9,6 @@ #include "constants/species.h" #include "struct_decls/sprite_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02007768_decl.h" #include "struct_decls/struct_02015064_decl.h" #include "struct_decls/struct_02015128_decl.h" @@ -37,23 +36,23 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "overlay_manager.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200762C.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015064.h" #include "unk_02017728.h" @@ -208,7 +207,7 @@ typedef struct ChooseStarterApp { int unk_A8; Strbuf *unk_AC; WindowTemplate unk_B0; - UIControlData *unk_B8; + Menu *unk_B8; UnkStruct_0200C738 unk_BC; CellActorCollection *unk_248; SpriteResourceCollection *unk_24C[6]; @@ -334,7 +333,7 @@ BOOL ChooseStarter_Init(OverlayManager *param0, int *param1) app->messageFrame = Options_Frame(data->options); app->unk_704 = Options_TextFrameDelay(data->options); - sub_0201DBEC(8, HEAP_ID_CHOOSE_STARTER_APP); + VRAMTransferManager_New(8, HEAP_ID_CHOOSE_STARTER_APP); SetMainCallback(ChooseStarterAppMainCallback, app); DisableHBlank(); @@ -467,7 +466,7 @@ BOOL ChooseStarter_Exit(OverlayManager *param0, int *param1) Heap_FreeToHeap(v0->bgl); ov78_021D10DC(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); OverlayManager_FreeData(param0); Heap_Destroy(47); @@ -486,17 +485,17 @@ static void ChooseStarterAppMainCallback(void *data) static void StartFadeIn(ChooseStarterApp *param0) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 47); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 47); } static void StartFadeOut(ChooseStarterApp *param0) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 47); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 47); } static BOOL IsFadeDone(ChooseStarterApp *param0) { - return ScreenWipe_Done(); + return IsScreenTransitionDone(); } static void SetupDrawing(ChooseStarterApp *app, enum HeapId heap) @@ -670,9 +669,9 @@ static void MakeMessageWindow(ChooseStarterApp *app, enum HeapId heapID) Window_Add(app->bgl, app->messageWindow, BG_LAYER_MAIN_1, TEXT_POS_X, TEXT_POS_Y, TEXT_COLUMNS, TEXT_ROWS, FRAME_PALETTE_INDEX, TEXT_WINDOW_SIZE + 1); Window_FillTilemap(app->messageWindow, 15); - sub_0200DD0C(app->bgl, BG_LAYER_MAIN_1, FRAME_TEXT_START, FRAME_TEXT_PALETTE_INDEX, app->messageFrame, heapID); + LoadMessageBoxGraphics(app->bgl, BG_LAYER_MAIN_1, FRAME_TEXT_START, FRAME_TEXT_PALETTE_INDEX, app->messageFrame, heapID); Graphics_LoadPalette(NARC_INDEX_GRAPHIC__EV_POKESELECT, 16, 0, FRAME_PALETTE_INDEX * 32, 32, heapID); - sub_0200E060(app->messageWindow, 0, FRAME_TEXT_START, FRAME_TEXT_PALETTE_INDEX); + Window_DrawMessageBoxWithScrollCursor(app->messageWindow, 0, FRAME_TEXT_START, FRAME_TEXT_PALETTE_INDEX); } static void ov78_021D13A0(ChooseStarterApp *param0) @@ -1254,12 +1253,12 @@ static void ov78_021D1E44(ChooseStarterApp *param0, int param1) break; case 2: ov78_021D1FB4(param0->messageWindow, param1, 360, 1 + param0->cursorPosition, TEXT_COLOR(1, 2, 15), TEXT_SPEED_NO_TRANSFER); - param0->unk_B8 = sub_02002100(param0->bgl, ¶m0->unk_B0, (512 + (18 + 12) + 128), 1, param1); + param0->unk_B8 = Menu_MakeYesNoChoice(param0->bgl, ¶m0->unk_B0, (512 + (18 + 12) + 128), 1, param1); param0->unk_08 = 0; param0->unk_04++; break; case 3: - v0 = sub_02002114(param0->unk_B8, param1); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_B8, param1); switch (v0) { case 0xffffffff: @@ -1297,7 +1296,7 @@ static u8 ov78_021D1FB4(Window *param0, int param1, int param2, int param3, Text Window_FillTilemap(param0, 15); v2 = Text_AddPrinterWithParamsAndColor(param0, FONT_MESSAGE, v1, 0, 0, param5, param4, NULL); - sub_0200E060(param0, 0, 512, 0); + Window_DrawMessageBoxWithScrollCursor(param0, 0, 512, 0); Strbuf_Free(v1); MessageLoader_Free(v0); @@ -1319,7 +1318,7 @@ static u8 ov78_021D201C(Window *param0, int param1, int param2, int param3, u32 Window_FillTilemap(param0, 15); v1 = Text_AddPrinterWithParamsAndColor(param0, FONT_MESSAGE, *param6, 0, 0, param5, param4, NULL); - sub_0200E060(param0, 0, 512, 0); + Window_DrawMessageBoxWithScrollCursor(param0, 0, 512, 0); MessageLoader_Free(v0); return v1; @@ -1341,7 +1340,7 @@ static void MakeConfirmationWindow(ChooseStarterApp *param0, int param1) param0->unk_B0.palette = 3; param0->unk_B0.baseTile = ((18 + 12) + 9 + 128); - sub_0200DAA4(param0->bgl, 1, (512 + (18 + 12) + 128), 1, 0, param1); + LoadStandardWindowGraphics(param0->bgl, 1, (512 + (18 + 12) + 128), 1, 0, param1); Font_LoadTextPalette(0, 3 * 32, param1); } diff --git a/src/colored_arrow.c b/src/colored_arrow.c index 1804a6fa9b..905117d747 100644 --- a/src/colored_arrow.c +++ b/src/colored_arrow.c @@ -14,7 +14,7 @@ ColoredArrow *ColoredArrow_New(u32 heapID) { static const charcode_t chars[] = { - CHAR_MENU_ARROW, + CHAR_ARROW_MENU, CHAR_EOS, }; ColoredArrow *arrow = Heap_AllocFromHeap(heapID, sizeof(ColoredArrow)); diff --git a/src/dw_warp/dw_warp.c b/src/dw_warp/dw_warp.c index 8ff02e2cb6..ed0ea21abb 100644 --- a/src/dw_warp/dw_warp.c +++ b/src/dw_warp/dw_warp.c @@ -88,7 +88,7 @@ BOOL DWWarp_Init(OverlayManager *ovy, int *state) DWWarp_InitModel(dww); DWWarp_InitCamera(dww); - sub_0200F174(0, 1, 1, 0x0, 16, 1, HEAP_ID_DISTORTION_WORLD_WARP); + StartScreenTransition(0, 1, 1, 0x0, 16, 1, HEAP_ID_DISTORTION_WORLD_WARP); gCoreSys.unk_65 = 0; @@ -117,7 +117,7 @@ BOOL DWWarp_Main(OverlayManager *ovy, int *state) switch (*state) { case DWARP_SEQ_SCREENWIPE: - if (ScreenWipe_Done() == TRUE) { + if (IsScreenTransitionDone() == TRUE) { (*state)++; } break; @@ -134,11 +134,11 @@ BOOL DWWarp_Main(OverlayManager *ovy, int *state) } break; case DWARP_SEQ_CLEAR_SCREEN: - sub_0200F174(0, 0, 0, 0x0, 20, 1, 30); + StartScreenTransition(0, 0, 0, 0x0, 20, 1, 30); (*state)++; break; case DWARP_SEQ_WAIT: - if (ScreenWipe_Done() == TRUE) { + if (IsScreenTransitionDone() == TRUE) { return TRUE; } break; diff --git a/src/error_message_reset.c b/src/error_message_reset.c index 351ee606ae..4fa8084444 100644 --- a/src/error_message_reset.c +++ b/src/error_message_reset.c @@ -13,11 +13,11 @@ #include "gx_layers.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "unk_02000C88.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_020366A0.h" @@ -132,7 +132,7 @@ void ErrorMessageReset_PrintErrorAndReset(void) SetAllGraphicsModes(&sErrorMessageBgModeSet); Bg_InitFromTemplate(bgConfig, 0, &sErrorMessageBgTemplate, 0); Bg_ClearTilemap(bgConfig, 0); - sub_0200DAA4(bgConfig, 0, (512 - 9), 2, 0, v5); + LoadStandardWindowGraphics(bgConfig, 0, (512 - 9), 2, 0, v5); Font_LoadTextPalette(0, 1 * (2 * 16), v5); Bg_ClearTilesRange(0, 32, 0, v5); Bg_MaskPalette(0, 0x6c21); @@ -145,7 +145,7 @@ void ErrorMessageReset_PrintErrorAndReset(void) Window_AddFromTemplate(bgConfig, &window, &sErrorMessageWindowTemplate); Window_FillRectWithColor(&window, 15, 0, 0, 26 * 8, 18 * 8); - Window_Show(&window, 0, (512 - 9), 2); + Window_DrawStandardFrame(&window, 0, (512 - 9), 2); MessageLoader_GetStrbuf(errorMsgData, v4, errorString); Text_AddPrinterWithParams(&window, FONT_SYSTEM, errorString, 0, 0, TEXT_SPEED_INSTANT, NULL); Strbuf_Free(errorString); diff --git a/src/field_comm_manager.c b/src/field_comm_manager.c index 97cf4d9460..f49411d10e 100644 --- a/src/field_comm_manager.c +++ b/src/field_comm_manager.c @@ -311,7 +311,7 @@ static void sub_020599E4(void) } if (CommTiming_IsSyncState(92)) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 4); sub_0200F32C(0); sub_0200F32C(1); CommPlayerMan_Restart(); @@ -389,7 +389,7 @@ static void sub_02059B10(void) CommSys_SendDataFixedSize(94, &v0); } - sub_0200F174(0, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 4); sub_0200F32C(0); sub_0200F32C(1); FieldCommMan_SetTask(sub_02059CD8, 0); @@ -403,7 +403,7 @@ static void sub_02059B74(void) for (v0 = 0; v0 < CommSys_ConnectedCount(); v0++) { if (v0 != CommSys_CurNetId()) { if (sub_02036564(v0) == 94) { - if (sFieldCommMan->fieldSystem->unk_10 == NULL) { + if (sFieldCommMan->fieldSystem->taskManager == NULL) { for (v1 = 0; v1 < 4; v1++) { if (sFieldCommMan->trainerCard[v1]) { Heap_FreeToHeap(sFieldCommMan->trainerCard[v1]); @@ -417,7 +417,7 @@ static void sub_02059B74(void) } } - sub_02038A1C(4, sFieldCommMan->fieldSystem->unk_08); + sub_02038A1C(4, sFieldCommMan->fieldSystem->bgConfig); } static void sub_02059BF4(void) diff --git a/src/field_map_change.c b/src/field_map_change.c index 65277cce5e..e489bcaa3e 100644 --- a/src/field_map_change.c +++ b/src/field_map_change.c @@ -7,7 +7,6 @@ #include "constants/overworld_weather.h" #include "consts/map.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0203A790_decl.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_defs/map_load_mode.h" @@ -18,7 +17,7 @@ #include "functypes/funcptr_02050904.h" #include "overlay005/ov5_021DD6FC.h" #include "overlay005/ov5_021E135C.h" -#include "overlay005/ov5_021E1D20.h" +#include "overlay005/save_info_window.h" #include "overlay005/struct_ov5_021D432C_decl.h" #include "overlay006/ov6_02243258.h" #include "overlay006/ov6_02247100.h" @@ -38,9 +37,11 @@ #include "map_header.h" #include "map_header_data.h" #include "map_object.h" +#include "menu.h" #include "message.h" #include "player_avatar.h" #include "pokeradar.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "savedata_misc.h" @@ -48,11 +49,9 @@ #include "strbuf.h" #include "sys_task_manager.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02027F50.h" #include "unk_0202854C.h" @@ -122,11 +121,11 @@ typedef struct MapChangeUndergroundData { int unk_14; BOOL unk_18; u16 unk_1C; - void *unk_20; + SaveInfoWindow *saveInfoWin; Window unk_24; Strbuf *unk_34; u8 unk_38; - UIControlData *unk_3C; + Menu *unk_3C; } MapChangeUndergroundData; typedef struct MapChangeUnionData { @@ -1144,7 +1143,7 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan) mapChangeUndergroundData->unk_34 = MessageLoader_GetNewStrbuf(msgLoader, 124); MessageLoader_Free(msgLoader); - FieldMessage_AddWindow(fieldSystem->unk_08, &mapChangeUndergroundData->unk_24, 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, &mapChangeUndergroundData->unk_24, 3); FieldMessage_DrawWindow(&mapChangeUndergroundData->unk_24, SaveData_Options(fieldSystem->saveData)); mapChangeUndergroundData->unk_38 = FieldMessage_Print(&mapChangeUndergroundData->unk_24, mapChangeUndergroundData->unk_34, SaveData_Options(fieldSystem->saveData), 1); mapChangeUndergroundData->state = 1; @@ -1152,20 +1151,20 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan) case 1: if (FieldMessage_FinishedPrinting(mapChangeUndergroundData->unk_38) == 1) { Strbuf_Free(mapChangeUndergroundData->unk_34); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 11); - mapChangeUndergroundData->unk_3C = sub_02002100(fieldSystem->unk_08, &Unk_020EC3A0, 1024 - (18 + 12) - 9, 11, 11); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 11); + mapChangeUndergroundData->unk_3C = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_020EC3A0, 1024 - (18 + 12) - 9, 11, 11); mapChangeUndergroundData->state = 2; } break; case 2: - switch (sub_02002114(mapChangeUndergroundData->unk_3C, 11)) { + switch (Menu_ProcessInputAndHandleExit(mapChangeUndergroundData->unk_3C, 11)) { case 0: - sub_0200E084(&mapChangeUndergroundData->unk_24, 0); + Window_EraseMessageBox(&mapChangeUndergroundData->unk_24, 0); Window_Remove(&mapChangeUndergroundData->unk_24); mapChangeUndergroundData->state = 3; break; case 0xfffffffe: - sub_0200E084(&mapChangeUndergroundData->unk_24, 0); + Window_EraseMessageBox(&mapChangeUndergroundData->unk_24, 0); Window_Remove(&mapChangeUndergroundData->unk_24); mapChangeUndergroundData->state = 5; } @@ -1175,8 +1174,8 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan) ScriptManager_Start(taskMan, 2034, NULL, NULL); } else { sub_020287E0(fieldSystem->saveData); - mapChangeUndergroundData->unk_20 = ov5_021E1F98(fieldSystem, 11, 3); - ov5_021E1F04(mapChangeUndergroundData->unk_20); + mapChangeUndergroundData->saveInfoWin = SaveInfoWindow_New(fieldSystem, 11, BG_LAYER_MAIN_3); + SaveInfoWindow_Draw(mapChangeUndergroundData->saveInfoWin); mapChangeUndergroundData->unk_1C = 0; ScriptManager_Start(taskMan, 2005, NULL, &mapChangeUndergroundData->unk_1C); } @@ -1187,8 +1186,8 @@ BOOL FieldTask_MapChangeToUnderground(TaskManager *taskMan) if (SaveData_OverwriteCheck(fieldSystem->saveData)) { mapChangeUndergroundData->state = 5; } else { - ov5_021E1F7C(mapChangeUndergroundData->unk_20); - ov5_021E1FF4(mapChangeUndergroundData->unk_20); + SaveInfoWindow_Erase(mapChangeUndergroundData->saveInfoWin); + SaveInfoWindow_Free(mapChangeUndergroundData->saveInfoWin); if (mapChangeUndergroundData->unk_1C == 0) { mapChangeUndergroundData->state = 5; @@ -1573,5 +1572,5 @@ void sub_02054864(TaskManager *taskMan) Location *location = FieldOverworldState_GetSpecialLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData)); fieldSystem->mapLoadType = MAP_LOAD_TYPE_OVERWORLD; - FieldSystem_StartChangeMapTask(fieldSystem->unk_10, location); + FieldSystem_StartChangeMapTask(fieldSystem->taskManager, location); } diff --git a/src/field_menu.c b/src/field_menu.c index af832711ea..f0715d2511 100644 --- a/src/field_menu.c +++ b/src/field_menu.c @@ -20,7 +20,6 @@ #include "struct_defs/struct_020708E0.h" #include "struct_defs/struct_020709CC.h" #include "struct_defs/struct_02072014.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02097728.h" #include "struct_defs/struct_02098C44.h" @@ -31,7 +30,7 @@ #include "gmm/message_bank_unk_0367.h" #include "overlay005/ov5_021D0D80.h" #include "overlay005/ov5_021D2F14.h" -#include "overlay005/ov5_021E1D20.h" +#include "overlay005/save_info_window.h" #include "overlay021/struct_ov21_021D0D80.h" #include "overlay104/struct_ov104_02241308.h" @@ -40,6 +39,7 @@ #include "cell_actor.h" #include "field_overworld_state.h" #include "field_system.h" +#include "font.h" #include "game_records.h" #include "gx_layers.h" #include "heap.h" @@ -47,6 +47,7 @@ #include "journal.h" #include "map_header.h" #include "map_object.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "party.h" @@ -54,20 +55,19 @@ #include "pokemon.h" #include "pokemon_summary_app.h" #include "poketch_data.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "script_manager.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02014A84.h" #include "unk_0202631C.h" #include "unk_02028124.h" @@ -342,7 +342,7 @@ void sub_0203AB00(FieldSystem *fieldSystem) menu->unk_224 = sub_0203ABD0(fieldSystem); } - FieldTask_Change(fieldSystem->unk_10, sub_0203AC44, menu); + FieldTask_Change(fieldSystem->taskManager, sub_0203AC44, menu); } static FieldMenu *FieldMenu_Alloc(void) @@ -362,7 +362,7 @@ static u32 sub_0203ABD0(FieldSystem *fieldSystem) { u32 v0 = 0; - if (sub_02027520(SaveData_Pokedex(fieldSystem->saveData)) == 0) { + if (Pokedex_IsObtained(SaveData_Pokedex(fieldSystem->saveData)) == FALSE) { v0 |= 0x1; } @@ -466,7 +466,7 @@ static BOOL sub_0203AC44(TaskManager *taskMan) } break; case FIELD_MENU_STATE_9: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_0203B2EC(menu, fieldSystem); Heap_FreeToHeap(menu); MapObjectMan_UnpauseAllMovement(fieldSystem->mapObjMan); @@ -481,7 +481,7 @@ static BOOL sub_0203AC44(TaskManager *taskMan) } break; case FIELD_MENU_STATE_11: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { FieldTask_Change(taskMan, menu->unk_22C, menu->unk_25C); Heap_FreeToHeap(menu); } @@ -493,15 +493,15 @@ static BOOL sub_0203AC44(TaskManager *taskMan) case FIELD_MENU_STATE_END: sub_0203B2EC(menu, fieldSystem); FieldMenu_Close(menu); - Window_Clear(&menu->unk_00, 1); + Window_EraseStandardFrame(&menu->unk_00, 1); Window_Remove(&menu->unk_00); sub_0203B200(taskMan); - Bg_ScheduleTilemapTransfer(fieldSystem->unk_08, 3); + Bg_ScheduleTilemapTransfer(fieldSystem->bgConfig, 3); Heap_FreeToHeap(menu); MapObjectMan_UnpauseAllMovement(fieldSystem->mapObjMan); return TRUE; case FIELD_MENU_STATE_14: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { menu->state = FIELD_MENU_STATE_SELECT; } break; @@ -520,20 +520,20 @@ static void sub_0203ADFC(TaskManager *taskMan) FieldSystem *fieldSystem; FieldMenu *menu; MessageLoader *v2; - UnkStruct_02081CF4 v3; + MenuTemplate v3; u32 v4, v5; fieldSystem = TaskManager_FieldSystem(taskMan); menu = TaskManager_Environment(taskMan); v5 = FieldMenu_MakeList(menu, menu->unk_30); - Window_Add(fieldSystem->unk_08, &menu->unk_00, 3, 20, 1, 11, v5 * 3, 12, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (11 * 22))); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 1, 11); - Window_Show(&menu->unk_00, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(fieldSystem->bgConfig, &menu->unk_00, 3, 20, 1, 11, v5 * 3, 12, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (11 * 22))); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 1, 11); + Window_DrawStandardFrame(&menu->unk_00, 1, 1024 - (18 + 12) - 9, 11); v2 = MessageLoader_Init(0, 26, 367, 11); - menu->unk_24 = sub_02013A04(v5, 11); + menu->unk_24 = StringList_New(v5, 11); menu->unk_28 = 0; for (v4 = 0; v4 < v5; v4++) { @@ -548,13 +548,13 @@ static void sub_0203ADFC(TaskManager *taskMan) StringTemplate_SetPlayerName(v6, 0, SaveData_GetTrainerInfo(fieldSystem->saveData)); StringTemplate_Format(v6, v7, v8); - sub_02013A6C(menu->unk_24, v7, menu->unk_30[v4]); + StringList_AddFromStrbuf(menu->unk_24, v7, menu->unk_30[v4]); Strbuf_Free(v8); Strbuf_Free(v7); StringTemplate_Free(v6); } else { - sub_02013A4C( + StringList_AddFromMessageBank( menu->unk_24, v2, Unk_020EA05C[menu->unk_30[v4]][0], menu->unk_30[v4]); } @@ -566,21 +566,21 @@ static void sub_0203ADFC(TaskManager *taskMan) fieldSystem->unk_90 = menu->unk_30[menu->unk_28]; MessageLoader_Free(v2); - v3.unk_00 = menu->unk_24; - v3.unk_04 = &menu->unk_00; - v3.unk_08 = 1; - v3.unk_09 = 1; - v3.unk_0A = v5; - v3.unk_0B_0 = 8; - v3.unk_0B_4 = 1; + v3.choices = menu->unk_24; + v3.window = &menu->unk_00; + v3.fontID = FONT_MESSAGE; + v3.xSize = 1; + v3.ySize = v5; + v3.lineSpacing = 8; + v3.suppressCursor = TRUE; if (v5 >= 4) { - v3.unk_0B_6 = 1; + v3.loopAround = TRUE; } else { - v3.unk_0B_6 = 0; + v3.loopAround = FALSE; } - menu->unk_20 = sub_02001AF4(&v3, 28, 4, menu->unk_28, 11, PAD_BUTTON_B | PAD_BUTTON_X); + menu->unk_20 = Menu_New(&v3, 28, 4, menu->unk_28, 11, PAD_BUTTON_B | PAD_BUTTON_X); Window_ScheduleCopyToVRAM(&menu->unk_00); sub_0203B318(menu, menu->unk_30, v5, TrainerInfo_Gender(SaveData_GetTrainerInfo(fieldSystem->saveData))); @@ -641,8 +641,8 @@ static u32 FieldMenu_MakeList(FieldMenu *menu, u8 *ret) static void FieldMenu_Close(FieldMenu *menu) { sub_0203B4E8(menu); - sub_02001BC4(menu->unk_20, NULL); - sub_02013A3C(menu->unk_24); + Menu_Free(menu->unk_20, NULL); + StringList_Free(menu->unk_24); menu->unk_20 = NULL; } @@ -668,9 +668,9 @@ static void sub_0203B094(TaskManager *taskMan) return; } - Window_Add(fieldSystem->unk_08, &menu->unk_10, 3, 1, 1, 12, 4, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4))); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 1, 11); - Window_Show(&menu->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(fieldSystem->bgConfig, &menu->unk_10, 3, 1, 1, 12, 4, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4))); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 1, 11); + Window_DrawStandardFrame(&menu->unk_10, 1, 1024 - (18 + 12) - 9, 11); Window_FillTilemap(&menu->unk_10, 15); v2 = MessageLoader_Init(0, 26, 367, 11); @@ -720,7 +720,7 @@ static void sub_0203B200(TaskManager *taskMan) return; } - Window_Clear(&menu->unk_10, 1); + Window_EraseStandardFrame(&menu->unk_10, 1); Window_Remove(&menu->unk_10); } @@ -732,10 +732,10 @@ static BOOL FieldMenu_Select(TaskManager *taskMan) fieldSystem = TaskManager_FieldSystem(taskMan); menu = TaskManager_Environment(taskMan); - v2 = sub_02001DC4(menu->unk_20); + v2 = Menu_GetCursorPos(menu->unk_20); - menu->unk_2C = sub_02001C94(menu->unk_20, 1504); - menu->unk_28 = sub_02001DC4(menu->unk_20); + menu->unk_2C = Menu_ProcessInputWithSound(menu->unk_20, 1504); + menu->unk_28 = Menu_GetCursorPos(menu->unk_20); if (v2 != menu->unk_28) { sub_0203B558(menu->unk_200[0]->unk_00, menu->unk_28); @@ -889,7 +889,7 @@ static void FieldMenu_ApplicationStart(TaskManager *taskMan) FieldSystem *fieldSystem; FieldMenu *menu; - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } @@ -1251,19 +1251,16 @@ static BOOL FieldMenu_SelectBag(TaskManager *taskMan) static BOOL FieldMenu_Bag(TaskManager *taskMan) { - FieldSystem *fieldSystem; - FieldMenu *menu; - - fieldSystem = TaskManager_FieldSystem(taskMan); - menu = TaskManager_Environment(taskMan); + FieldSystem *fieldSystem = TaskManager_FieldSystem(taskMan); + FieldMenu *menu = TaskManager_Environment(taskMan); menu->unk_25C = sub_0203D20C(fieldSystem, &menu->unk_230); sub_0207CB70(menu->unk_25C, 0); menu->unk_22C = sub_0203BC5C; - ov5_021E2064(fieldSystem); + FieldSystem_SaveStateIfCommunicationOff(fieldSystem); - return 0; + return FALSE; } static BOOL sub_0203BC5C(TaskManager *taskMan) @@ -1427,7 +1424,7 @@ static BOOL FieldMenu_SelectSave(TaskManager *taskMan) FieldMenu *menu = TaskManager_Environment(taskMan); FieldMenu_Close(menu); - Window_Clear(&menu->unk_00, 1); + Window_EraseStandardFrame(&menu->unk_00, 1); Bg_ScheduleTilemapTransfer(menu->unk_00.bgConfig, menu->unk_00.bgLayer); Window_Remove(&menu->unk_00); sub_0203B200(taskMan); @@ -1497,7 +1494,7 @@ static BOOL FieldMenu_Options(TaskManager *taskMan) fieldSystem = TaskManager_FieldSystem(taskMan); menu = TaskManager_Environment(taskMan); - menu->unk_25C = sub_0203D8EC(fieldSystem); + menu->unk_25C = FieldSystem_OpenOptionsMenu(fieldSystem); menu->unk_22C = sub_0203C050; return FALSE; @@ -1591,7 +1588,7 @@ static BOOL FieldMenu_SelectRetire(TaskManager *taskMan) menu = TaskManager_Environment(taskMan); FieldMenu_Close(menu); - Window_Clear(&menu->unk_00, 1); + Window_EraseStandardFrame(&menu->unk_00, 1); Bg_ScheduleTilemapTransfer(menu->unk_00.bgConfig, menu->unk_00.bgLayer); Window_Remove(&menu->unk_00); sub_0203B200(taskMan); diff --git a/src/field_system.c b/src/field_system.c index c02b4dd885..d202bac7a6 100644 --- a/src/field_system.c +++ b/src/field_system.c @@ -174,7 +174,7 @@ static FieldSystem *FieldSystem_Init(OverlayManager *overlayMan) v0 = OverlayManager_Args(overlayMan); fieldSystem->saveData = v0->unk_08; - fieldSystem->unk_10 = NULL; + fieldSystem->taskManager = NULL; fieldSystem->location = sub_0203A720(SaveData_GetFieldOverworldState(fieldSystem->saveData)); fieldSystem->unk_2C = sub_02039D6C(); @@ -240,7 +240,7 @@ BOOL FieldSystem_Run(FieldSystem *fieldSystem) sub_0203CECC(&fieldSystem->unk_00->unk_04); } - if (fieldSystem->unk_00->unk_0C && !fieldSystem->unk_10 && !fieldSystem->unk_00->unk_00 && !fieldSystem->unk_00->unk_04) { + if (fieldSystem->unk_00->unk_0C && !fieldSystem->taskManager && !fieldSystem->unk_00->unk_00 && !fieldSystem->unk_00->unk_04) { return 1; } @@ -379,7 +379,7 @@ struct PoketchSystem *FieldSystem_GetPoketchSystem(void) BgConfig *sub_0203D170(void *param0) { FieldSystem *fieldSystem = (FieldSystem *)param0; - return fieldSystem->unk_08; + return fieldSystem->bgConfig; } SaveData *FieldSystem_SaveData(void *param0) diff --git a/src/font.c b/src/font.c index df5b303ce2..28ffc70051 100644 --- a/src/font.c +++ b/src/font.c @@ -5,10 +5,13 @@ #include "constants/narc.h" +#include "fonts/pl_font.naix" + #include "charcode.h" #include "font_manager.h" #include "graphics.h" #include "heap.h" +#include "palette.h" #include "render_text.h" #include "strbuf.h" #include "text.h" @@ -24,19 +27,19 @@ static const struct { u16 isMonospace; } sFontArchiveData[FONT_MAX] = { [FONT_SYSTEM] = { - .arcFileIdx = 0, + .arcFileIdx = font_system_NFGR, .isMonospace = FALSE, }, [FONT_MESSAGE] = { - .arcFileIdx = 1, + .arcFileIdx = font_message_NFGR, .isMonospace = FALSE, }, [FONT_SUBSCREEN] = { - .arcFileIdx = 2, + .arcFileIdx = font_subscreen_NFGR, .isMonospace = FALSE, }, [FONT_UNOWN] = { - .arcFileIdx = 3, + .arcFileIdx = font_unown_NFGR, .isMonospace = FALSE, }, }; @@ -230,12 +233,22 @@ u8 Font_GetAttribute(u8 font, u8 attribute) void Font_LoadTextPalette(int palLocation, u32 palSlotOffset, u32 heapID) { - Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_FONT, 6, palLocation, palSlotOffset, 0x20, heapID); + Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_FONT, + font_NCLR, + palLocation, + palSlotOffset, + PALETTE_SIZE_BYTES, + heapID); } void Font_LoadScreenIndicatorsPalette(int palLocation, u32 palSlotOffset, u32 heapID) { - Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_FONT, 7, palLocation, palSlotOffset, 0x20, heapID); + Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_FONT, + screen_indicators_NCLR, + palLocation, + palSlotOffset, + PALETTE_SIZE_BYTES, + heapID); } u32 Font_CalcMaxLineWidth(enum Font font, const Strbuf *strbuf, u32 letterSpacing) diff --git a/src/font_manager.c b/src/font_manager.c index 123c13e32b..e899dd01f8 100644 --- a/src/font_manager.c +++ b/src/font_manager.c @@ -156,7 +156,7 @@ void FontManager_TryLoadGlyph(const FontManager *fontManager, charcode_t c, Text if (c <= fontManager->header.numGlyphs) { c--; } else { - c = CHAR_EN_QUESTION_MARK - 1; + c = CHAR_QUESTION - 1; } fontManager->glyphBitmapFunc(fontManager, c, outGlyph); @@ -268,7 +268,7 @@ static u8 GlyphWidthFunc_VariableWidth(const FontManager *fontManager, u32 glyph if (glyphIdx < fontManager->header.numGlyphs) { return fontManager->glyphWidths[glyphIdx]; } else { - return fontManager->glyphWidths[CHAR_EN_QUESTION_MARK - 1]; + return fontManager->glyphWidths[CHAR_QUESTION - 1]; } } diff --git a/src/game_records.c b/src/game_records.c index 7b20d42b20..c1db3cad0d 100644 --- a/src/game_records.c +++ b/src/game_records.c @@ -409,7 +409,7 @@ u32 GameRecords_GetTrainerScore(GameRecords *records) void GameRecords_IncrementTrainerScoreOnCatch(GameRecords *records, const PokedexData *pokedex, const u16 species) { - if (!Pokedex_HasCaught(pokedex, species)) { + if (!Pokedex_HasCaughtSpecies(pokedex, species)) { GameRecords_IncrementTrainerScore(records, TRAINER_SCORE_EVENT_CAUGHT_SPECIES); } } diff --git a/src/library_tv/library_tv.c b/src/library_tv/library_tv.c index ea8c6f0110..f1bd62e682 100644 --- a/src/library_tv/library_tv.c +++ b/src/library_tv/library_tv.c @@ -107,14 +107,14 @@ BOOL LibraryTV_Main(OverlayManager *ovy, int *state) ltv->waitTiming--; } else { ltv->waitTiming = 0; - sub_0200F174(0, 1, 1, 0x0, 6, 1, ltv->heapID); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, ltv->heapID); *state = STATE_FADE_WAIT; } break; case STATE_FADE_WAIT: LibraryTV_UpdateScanLines(ltv); - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ltv->waitTiming = LIBRARY_TV_DURATION; *state = STATE_MAIN; } @@ -126,14 +126,14 @@ BOOL LibraryTV_Main(OverlayManager *ovy, int *state) ltv->waitTiming--; } else { ltv->waitTiming = 0; - sub_0200F174(0, 0, 0, 0x0, 6, 1, ltv->heapID); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, ltv->heapID); *state = STATE_EXIT; } break; case STATE_EXIT: LibraryTV_UpdateScanLines(ltv); - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { LibraryTV_ReleaseMsgLdr(ltv); LibraryTV_ReleaseVramBank(ltv); SetMainCallback(NULL, NULL); diff --git a/src/list_menu.c b/src/list_menu.c new file mode 100644 index 0000000000..c5caa7739f --- /dev/null +++ b/src/list_menu.c @@ -0,0 +1,563 @@ +#include "list_menu.h" + +#include +#include +#include + +#include "bg_window.h" +#include "colored_arrow.h" +#include "core_sys.h" +#include "font.h" +#include "heap.h" +#include "string_list.h" +#include "text.h" + +static void PrintEntry(ListMenu *menu, void *strbuf, u8 xOffset, u8 yOffset); +static void PrintEntries(ListMenu *menu, u16 startIndex, u16 lineOffset, u16 lineCount); +static void PrintCursor(ListMenu *menu); +static void EraseCursor(ListMenu *menu, u16 atLine); +static u8 UpdateOffsetsForScroll(ListMenu *menu, u8 movingDown); +static void ScrollList(ListMenu *menu, u8 lineCount, u8 isUpward); +static u8 UpdateSelectedRow(ListMenu *menu, u8 updateCursor, u8 scrollCount, u8 movingDown); +static void InvokeCursorCallback(ListMenu *menu, u8 onInit); + +ListMenu *ListMenu_New(const ListMenuTemplate *template, u16 startListPos, u16 startCursorPos, u8 heapID) +{ + ListMenu *menu = Heap_AllocFromHeap(heapID, sizeof(ListMenu)); + + menu->template = *template; + menu->cursor = ColoredArrow_New(heapID); + menu->listPos = startListPos; + menu->cursorPos = startCursorPos; + menu->dummy2C = 0; + menu->dummy2D = 0; + menu->dummy2E = 0xFF; + menu->lastAction = 0; + menu->heapID = heapID; + + menu->altFont.textColorFg = menu->template.textColorFg; + menu->altFont.textColorBg = menu->template.textColorBg; + menu->altFont.textColorShadow = menu->template.textColorShadow; + menu->altFont.letterSpacing = menu->template.letterSpacing; + menu->altFont.fontID = menu->template.fontID; + menu->altFont.prefer = 0; + + if (menu->template.count < menu->template.maxDisplay) { + menu->template.maxDisplay = menu->template.count; + } + + ColoredArrow_SetColor(menu->cursor, TEXT_COLOR(menu->template.textColorFg, menu->template.textColorShadow, menu->template.textColorBg)); + Window_FillTilemap(menu->template.window, menu->template.textColorBg); + PrintEntries(menu, menu->listPos, 0, menu->template.maxDisplay); + PrintCursor(menu); + InvokeCursorCallback(menu, TRUE); + Window_CopyToVRAM(template->window); + + return menu; +} + +u32 ListMenu_ProcessInput(ListMenu *menu) +{ + menu->lastAction = LIST_MENU_ACTION_NONE; + + if (JOY_NEW(PAD_BUTTON_A)) { + return menu->template.choices[menu->listPos + menu->cursorPos].index; + } + + if (JOY_NEW(PAD_BUTTON_B)) { + return LIST_CANCEL; + } + + if (JOY_REPEAT(PAD_KEY_UP)) { + if (UpdateSelectedRow(menu, TRUE, 1, FALSE) == 0) { + menu->lastAction = LIST_MENU_ACTION_MOVE_UP; + } + + return LIST_NOTHING_CHOSEN; + } + + if (JOY_REPEAT(PAD_KEY_DOWN)) { + if (UpdateSelectedRow(menu, TRUE, 1, TRUE) == 0) { + menu->lastAction = LIST_MENU_ACTION_MOVE_DOWN; + } + + return LIST_NOTHING_CHOSEN; + } + + u16 pageUp, pageDown; + switch (menu->template.pagerMode) { + default: + case PAGER_MODE_NONE: + pageUp = FALSE; + pageDown = FALSE; + break; + + case PAGER_MODE_LEFT_RIGHT_PAD: + pageUp = JOY_REPEAT(PAD_KEY_LEFT); + pageDown = JOY_REPEAT(PAD_KEY_RIGHT); + break; + + case PAGER_MODE_SHOULDER_BUTTONS: + pageUp = JOY_REPEAT(PAD_BUTTON_L); + pageDown = JOY_REPEAT(PAD_BUTTON_R); + break; + } + + if (pageUp) { + if (UpdateSelectedRow(menu, TRUE, menu->template.maxDisplay, FALSE) == 0) { + menu->lastAction = LIST_MENU_ACTION_PAGE_UP; + } + + return LIST_NOTHING_CHOSEN; + } + + if (pageDown) { + if (UpdateSelectedRow(menu, TRUE, menu->template.maxDisplay, TRUE) == 0) { + menu->lastAction = LIST_MENU_ACTION_PAGE_DOWN; + } + + return LIST_NOTHING_CHOSEN; + } + + return LIST_NOTHING_CHOSEN; +} + +void ListMenu_Free(ListMenu *menu, u16 *outListPos, u16 *outCursorPos) +{ + if (outListPos != NULL) { + *outListPos = menu->listPos; + } + + if (outCursorPos != NULL) { + *outCursorPos = menu->cursorPos; + } + + ColoredArrow_Free(menu->cursor); + Heap_FreeToHeapExplicit(menu->heapID, menu); +} + +void ListMenu_Draw(ListMenu *menu) +{ + Window_FillTilemap(menu->template.window, menu->template.textColorBg); + PrintEntries(menu, menu->listPos, 0, menu->template.maxDisplay); + PrintCursor(menu); + Window_CopyToVRAM(menu->template.window); +} + +void ListMenu_SetTextColors(ListMenu *menu, u8 fg, u8 bg, u8 shadow) +{ + menu->template.textColorFg = fg; + menu->template.textColorBg = bg; + menu->template.textColorShadow = shadow; +} + +u32 ListMenu_TestInput(ListMenu *menu, ListMenuTemplate *template, u16 listPos, u16 cursorPos, u16 updateCursor, u16 input, u16 *outListPos, u16 *outCursorPos) +{ + if (template) { + menu->template = *template; + } + + menu->listPos = listPos; + menu->cursorPos = cursorPos; + menu->dummy2C = 0; + menu->dummy2D = 0; + + if (input == PAD_KEY_UP) { + UpdateSelectedRow(menu, updateCursor, 1, 0); + } else if (input == PAD_KEY_DOWN) { + UpdateSelectedRow(menu, updateCursor, 1, 1); + } + + if (outListPos != NULL) { + *outListPos = menu->listPos; + } + + if (outCursorPos != NULL) { + *outCursorPos = menu->cursorPos; + } + + return LIST_NOTHING_CHOSEN; +} + +void ListMenu_SetAltTextColors(ListMenu *menu, u8 fg, u8 bg, u8 shadow) +{ + menu->altFont.textColorFg = fg; + menu->altFont.textColorBg = bg; + menu->altFont.textColorShadow = shadow; + menu->altFont.prefer = TRUE; +} + +void ListMenu_CalcTrueCursorPos(ListMenu *menu, u16 *outPos) +{ + *outPos = menu->listPos + menu->cursorPos; +} + +void ListMenu_GetListAndCursorPos(ListMenu *menu, u16 *outListPos, u16 *outCursorPos) +{ + if (outListPos != NULL) { + *outListPos = menu->listPos; + } + + if (outCursorPos != NULL) { + *outCursorPos = menu->cursorPos; + } +} + +u8 ListMenu_GetLastAction(ListMenu *menu) +{ + return menu->lastAction; +} + +u32 ListMenu_GetIndexOfChoice(ListMenu *menu, u16 choice) +{ + return menu->template.choices[choice].index; +} + +u32 ListMenu_GetAttribute(ListMenu *menu, u8 attribute) +{ + u32 result; + + switch (attribute) { + case LIST_MENU_CURSOR_CALLBACK: + result = (u32)menu->template.cursorCallback; + break; + + case LIST_MENU_PRINT_CALLBACK: + result = (u32)menu->template.printCallback; + break; + + case LIST_MENU_COUNT: + result = menu->template.count; + break; + + case LIST_MENU_MAX_DISPLAY: + result = menu->template.maxDisplay; + break; + + case LIST_MENU_HEADER_X_OFFSET: + result = menu->template.headerXOffset; + break; + + case LIST_MENU_TEXT_X_OFFSET: + result = menu->template.textXOffset; + break; + + case LIST_MENU_CURSOR_X_OFFSET: + result = menu->template.cursorXOffset; + break; + + case LIST_MENU_Y_OFFSET: + result = menu->template.yOffset; + break; + + case LIST_MENU_LINE_HEIGHT: + result = Font_GetAttribute(menu->template.fontID, FONTATTR_MAX_LETTER_HEIGHT) + menu->template.lineSpacing; + break; + + case LIST_MENU_TEXT_COLOR_FG: + result = menu->template.textColorFg; + break; + + case LIST_MENU_TEXT_COLOR_BG: + result = menu->template.textColorBg; + break; + + case LIST_MENU_TEXT_COLOR_SHADOW: + result = menu->template.textColorShadow; + break; + + case LIST_MENU_LETTER_SPACING: + result = menu->template.letterSpacing; + break; + + case LIST_MENU_LINE_SPACING: + result = menu->template.lineSpacing; + break; + + case LIST_MENU_PAGER_MODE: + result = menu->template.pagerMode; + break; + + case LIST_MENU_FONT_ID: + result = menu->template.fontID; + break; + + case LIST_MENU_CURSOR_TYPE: + result = menu->template.cursorType; + break; + + case LIST_MENU_WINDOW: + result = (u32)menu->template.window; + break; + + case LIST_MENU_TMP: + result = (u32)menu->template.tmp; + break; + + default: + result = LIST_NOTHING_CHOSEN; + } + + return result; +} + +void ListMenu_SetChoices(ListMenu *menu, StringList *choices) +{ + menu->template.choices = choices; +} + +static void PrintEntry(ListMenu *menu, void *strbuf, u8 xOffset, u8 yOffset) +{ + if (strbuf == NULL) { + return; + } + + if (menu->altFont.prefer) { + Text_AddPrinterWithParamsColorAndSpacing(menu->template.window, + menu->altFont.fontID, + strbuf, + xOffset, + yOffset, + TEXT_SPEED_NO_TRANSFER, + TEXT_COLOR(menu->altFont.textColorFg, menu->altFont.textColorShadow, menu->altFont.textColorBg), + menu->altFont.letterSpacing, + 0, + NULL); + } else { + Text_AddPrinterWithParamsColorAndSpacing(menu->template.window, + menu->template.fontID, + strbuf, + xOffset, + yOffset, + TEXT_SPEED_NO_TRANSFER, + TEXT_COLOR(menu->template.textColorFg, menu->template.textColorShadow, menu->template.textColorBg), + menu->template.letterSpacing, + 0, + NULL); + } +} + +static void PrintEntries(ListMenu *menu, u16 startIndex, u16 lineOffset, u16 lineCount) +{ + u8 lineHeight = Font_GetAttribute(menu->template.fontID, FONTATTR_MAX_LETTER_HEIGHT) + menu->template.lineSpacing; + + for (int line = 0; line < lineCount; line++) { + u8 xOffset; + if (menu->template.choices[startIndex].index != LIST_HEADER) { + xOffset = menu->template.textXOffset; + } else { + xOffset = menu->template.headerXOffset; + } + + u8 yOffset = ((line + lineOffset) * lineHeight) + menu->template.yOffset; + + if (menu->template.printCallback != NULL) { + menu->template.printCallback(menu, menu->template.choices[startIndex].index, yOffset); + } + + PrintEntry(menu, (void *)menu->template.choices[startIndex].entry, xOffset, yOffset); + startIndex++; + } +} + +static void PrintCursor(ListMenu *menu) +{ + u8 lineHeight = Font_GetAttribute(menu->template.fontID, FONTATTR_MAX_LETTER_HEIGHT) + menu->template.lineSpacing; + u8 x = menu->template.cursorXOffset; + u8 y = (menu->cursorPos * lineHeight) + menu->template.yOffset; + + // This does not match as a basic if-check. + switch (menu->template.cursorType) { + case 0: + ColoredArrow_Print(menu->cursor, menu->template.window, x, y); + break; + + case 1: + case 2: + case 3: + break; + } +} + +static void EraseCursor(ListMenu *menu, u16 atLine) +{ + u8 lineHeight; + switch (menu->template.cursorType) { + case 0: + lineHeight = Font_GetAttribute(menu->template.fontID, FONTATTR_MAX_LETTER_HEIGHT) + menu->template.lineSpacing; + Window_FillRectWithColor(menu->template.window, + menu->template.textColorBg, + menu->template.cursorXOffset, + atLine * lineHeight + menu->template.yOffset, + 8, + 16); + break; + + case 1: + case 2: + case 3: + break; + } +} + +static u8 UpdateOffsetsForScroll(ListMenu *menu, u8 movingDown) +{ + u16 listPos, cursorPos, newListPos; + cursorPos = menu->cursorPos; + listPos = menu->listPos; + + if (!movingDown) { + if (menu->template.maxDisplay == 1) { + newListPos = 0; + } else { + newListPos = menu->template.maxDisplay - ((menu->template.maxDisplay / 2) + (menu->template.maxDisplay % 2)) - 1; + } + + if (listPos == 0) { + while (cursorPos > 0) { + cursorPos--; + if (menu->template.choices[listPos + cursorPos].index != LIST_HEADER) { + menu->cursorPos = cursorPos; + return 1; + } + } + + return 0; + } + + while (cursorPos > newListPos) { + cursorPos--; + if (menu->template.choices[listPos + cursorPos].index != LIST_HEADER) { + menu->cursorPos = cursorPos; + return 1; + } + } + + listPos--; + + menu->cursorPos = newListPos; + menu->listPos = listPos; + } else { + if (menu->template.maxDisplay == 1) { + newListPos = 0; + } else { + newListPos = (u16)((menu->template.maxDisplay / 2) + (menu->template.maxDisplay % 2)); + } + + if (listPos == (menu->template.count - menu->template.maxDisplay)) { + while (cursorPos < (menu->template.maxDisplay - 1)) { + cursorPos++; + + if (menu->template.choices[listPos + cursorPos].index != LIST_HEADER) { + menu->cursorPos = cursorPos; + return 1; + } + } + + return 0; + } + + while (cursorPos < newListPos) { + cursorPos++; + + if (menu->template.choices[listPos + cursorPos].index != LIST_HEADER) { + menu->cursorPos = cursorPos; + return 1; + } + } + + listPos++; + + menu->cursorPos = newListPos; + menu->listPos = listPos; + } + + return 2; +} + +static void ScrollList(ListMenu *menu, u8 lineCount, u8 movingDown) +{ + if (lineCount >= menu->template.maxDisplay) { + Window_FillTilemap(menu->template.window, menu->template.textColorBg); + PrintEntries(menu, menu->listPos, 0, menu->template.maxDisplay); + return; + } + + u8 lineHeight = Font_GetAttribute(menu->template.fontID, FONTATTR_MAX_LETTER_HEIGHT) + menu->template.lineSpacing; + + if (!movingDown) { + Window_Scroll(menu->template.window, SCROLL_DIRECTION_DOWN, lineCount * lineHeight, PIXEL_FILL(menu->template.textColorBg)); + PrintEntries(menu, menu->listPos, 0, lineCount); + + u16 y = (u16)(menu->template.maxDisplay * lineHeight + menu->template.yOffset); + Window_FillRectWithColor(menu->template.window, + menu->template.textColorBg, + 0, + y, + Window_GetWidth(menu->template.window) * 8, + Window_GetHeight(menu->template.window) * 8 - y); + } else { + Window_Scroll(menu->template.window, SCROLL_DIRECTION_UP, lineCount * lineHeight, PIXEL_FILL(menu->template.textColorBg)); + PrintEntries(menu, menu->listPos + (menu->template.maxDisplay - lineCount), menu->template.maxDisplay - lineCount, lineCount); + Window_FillRectWithColor(menu->template.window, + menu->template.textColorBg, + 0, + 0, + Window_GetWidth(menu->template.window) * 8, + menu->template.yOffset); + } +} + +static u8 UpdateSelectedRow(ListMenu *menu, u8 updateCursor, u8 scrollCount, u8 movingDown) +{ + u8 i, ret; + u16 cursorPos = menu->cursorPos; + u8 linesScrolled = 0; + u8 selectionChange = 0; + + for (i = 0; i < scrollCount; i++) { + do { + ret = UpdateOffsetsForScroll(menu, movingDown); + selectionChange |= ret; + if (ret != 2) { + break; + } + + linesScrolled++; + } while (menu->template.choices[menu->listPos + menu->cursorPos].index == LIST_HEADER); + } + + if (updateCursor) { + switch (selectionChange) { + default: + case 0: + return TRUE; + break; + + case 1: + EraseCursor(menu, cursorPos); + PrintCursor(menu); + InvokeCursorCallback(menu, FALSE); + Window_CopyToVRAM(menu->template.window); + break; + + case 2: + case 3: + EraseCursor(menu, cursorPos); + ScrollList(menu, linesScrolled, movingDown); + PrintCursor(menu); + InvokeCursorCallback(menu, FALSE); + Window_CopyToVRAM(menu->template.window); + break; + } + } + + return FALSE; +} + +static void InvokeCursorCallback(ListMenu *menu, u8 onInit) +{ + if (menu->template.cursorCallback != NULL) { + menu->template.cursorCallback(menu, menu->template.choices[menu->listPos + menu->cursorPos].index, onInit); + } +} diff --git a/src/menu.c b/src/menu.c new file mode 100644 index 0000000000..d818bf958a --- /dev/null +++ b/src/menu.c @@ -0,0 +1,489 @@ +#include "menu.h" + +#include +#include + +#include "consts/sdat.h" + +#include "gmm/message_bank_common_strings_2.h" +#include "text/pl_msg.naix" + +#include "bg_window.h" +#include "colored_arrow.h" +#include "core_sys.h" +#include "font.h" +#include "heap.h" +#include "message.h" +#include "render_window.h" +#include "string_list.h" +#include "text.h" +#include "unk_02005474.h" + +static BOOL TryMovingCursorAndPlaySound(Menu *menu, u8 direction, u16 sound); +static u8 TryMovingCursor(Menu *menu, u8 direction); +static u8 CalcMaxEntryWidth(Menu *menu); +static void DrawWholeMenu(Menu *menu); +static void DrawCursor(Menu *menu); +static void CalcCursorDrawCoords(Menu *menu, u8 *outX, u8 *outY, u8 cursorPos); + +Menu *Menu_New(const MenuTemplate *template, u8 xOffset, u8 yOffset, u8 cursorStart, u8 heapID, u32 cancelKeys) +{ + Menu *menu = Heap_AllocFromHeap(heapID, sizeof(Menu)); + + menu->template = *template; + menu->cursor = ColoredArrow_New(heapID); + menu->cancelKeys = cancelKeys; + menu->cursorPos = cursorStart; + menu->width = CalcMaxEntryWidth(menu); + menu->heapID = heapID; + menu->xOffset = xOffset; + menu->yOffset = yOffset; + menu->letterWidth = Font_GetAttribute(template->fontID, FONTATTR_MAX_LETTER_WIDTH) + Font_GetAttribute(template->fontID, FONTATTR_LETTER_SPACING); + menu->lineHeight = Font_GetAttribute(template->fontID, FONTATTR_MAX_LETTER_HEIGHT) + Font_GetAttribute(template->fontID, FONTATTR_LINE_SPACING); + + DrawWholeMenu(menu); + DrawCursor(menu); + + return menu; +} + +Menu *Menu_NewAndCopyToVRAM(const MenuTemplate *template, u8 xOffset, u8 yOffset, u8 cursorStart, u8 heapID, u32 cancelKeys) +{ + Menu *menu = Menu_New(template, xOffset, yOffset, cursorStart, heapID, cancelKeys); + Window_CopyToVRAM(menu->template.window); + + return menu; +} + +Menu *Menu_NewSimple(const MenuTemplate *template, u8 cursorStart, u8 heapID) +{ + return Menu_NewAndCopyToVRAM(template, Font_GetAttribute(template->fontID, FONTATTR_MAX_LETTER_WIDTH), 0, cursorStart, heapID, PAD_BUTTON_B); +} + +void Menu_Free(Menu *menu, u8 *outCursorPos) +{ + if (outCursorPos != NULL) { + *outCursorPos = menu->cursorPos; + } + + ColoredArrow_Free(menu->cursor); + Heap_FreeToHeapExplicit(menu->heapID, menu); +} + +u32 Menu_ProcessInput(Menu *menu) +{ + menu->lastAction = MENU_ACTION_NONE; + + if (JOY_NEW(PAD_BUTTON_A)) { + Sound_PlayEffect(SEQ_SE_CONFIRM); + return menu->template.choices[menu->cursorPos].index; + } + + if (JOY_NEW(menu->cancelKeys)) { + Sound_PlayEffect(SEQ_SE_CONFIRM); + return MENU_CANCELED; + } + + if (JOY_NEW(PAD_KEY_UP)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_UP, SEQ_SE_CONFIRM) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_UP; + } + + return MENU_NOTHING_CHOSEN; + } + + if (JOY_NEW(PAD_KEY_DOWN)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_DOWN, SEQ_SE_CONFIRM) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_DOWN; + } + + return MENU_NOTHING_CHOSEN; + } + + if (JOY_NEW(PAD_KEY_LEFT)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_LEFT, SEQ_SE_CONFIRM) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_LEFT; + } + + return MENU_NOTHING_CHOSEN; + } + + if (JOY_NEW(PAD_KEY_RIGHT)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_RIGHT, SEQ_SE_CONFIRM) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_RIGHT; + } + + return MENU_NOTHING_CHOSEN; + } + + return MENU_NOTHING_CHOSEN; +} + +u32 Menu_ProcessInputWithSound(Menu *menu, u16 sdatID) +{ + menu->lastAction = MENU_ACTION_NONE; + + if (JOY_NEW(PAD_BUTTON_A)) { + Sound_PlayEffect(SEQ_SE_CONFIRM); + return menu->template.choices[menu->cursorPos].index; + } + + if (JOY_NEW(menu->cancelKeys)) { + Sound_PlayEffect(SEQ_SE_CONFIRM); + return MENU_CANCELED; + } + + if (JOY_NEW(PAD_KEY_UP)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_UP, sdatID) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_UP; + } + + return MENU_NOTHING_CHOSEN; + } + + if (JOY_NEW(PAD_KEY_DOWN)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_DOWN, sdatID) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_DOWN; + } + + return MENU_NOTHING_CHOSEN; + } + + if (JOY_NEW(PAD_KEY_LEFT)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_LEFT, sdatID) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_LEFT; + } + + return MENU_NOTHING_CHOSEN; + } + + if (JOY_NEW(PAD_KEY_RIGHT)) { + if (TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_RIGHT, sdatID) == TRUE) { + menu->lastAction = MENU_ACTION_MOVE_RIGHT; + } + + return MENU_NOTHING_CHOSEN; + } + + return MENU_NOTHING_CHOSEN; +} + +u32 Menu_ProcessExternalInput(Menu *menu, u8 input) +{ + switch (input) { + case MENU_INPUT_CONFIRM: + Sound_PlayEffect(SEQ_SE_CONFIRM); + return menu->template.choices[menu->cursorPos].index; + + case MENU_INPUT_CANCEL: + Sound_PlayEffect(SEQ_SE_CONFIRM); + return 0xfffffffe; + + case MENU_INPUT_MOVE_UP: + TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_UP, SEQ_SE_CONFIRM); + return MENU_NOTHING_CHOSEN; + + case MENU_INPUT_MOVE_DOWN: + TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_DOWN, SEQ_SE_CONFIRM); + return MENU_NOTHING_CHOSEN; + + case MENU_INPUT_MOVE_LEFT: + TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_LEFT, SEQ_SE_CONFIRM); + return MENU_NOTHING_CHOSEN; + + case MENU_INPUT_MOVE_RIGHT: + TryMovingCursorAndPlaySound(menu, SCROLL_DIRECTION_RIGHT, SEQ_SE_CONFIRM); + return MENU_NOTHING_CHOSEN; + } + + return MENU_NOTHING_CHOSEN; +} + +u8 Menu_GetCursorPos(Menu *menu) +{ + return menu->cursorPos; +} + +u8 Menu_GetLastAction(Menu *menu) +{ + return menu->lastAction; +} + +static BOOL TryMovingCursorAndPlaySound(Menu *menu, u8 direction, u16 sound) +{ + u8 oldCursorPos = menu->cursorPos; + if (TryMovingCursor(menu, direction) == FALSE) { + return FALSE; + } + + u8 bgColor = Font_GetAttribute(menu->template.fontID, FONTATTR_BG_COLOR); + + u8 x, y; + CalcCursorDrawCoords(menu, &x, &y, oldCursorPos); + Window_FillRectWithColor(menu->template.window, bgColor, x, y, 8, menu->lineHeight); + + DrawCursor(menu); + Sound_PlayEffect(sound); + + return TRUE; +} + +static u8 TryMovingCursor(Menu *menu, u8 direction) +{ + s8 newCursorPos; + + if (direction == SCROLL_DIRECTION_UP) { + if (menu->template.ySize <= 1) { + return FALSE; + } + + if (menu->cursorPos % menu->template.ySize == 0) { + if (menu->template.loopAround == FALSE) { + return FALSE; + } + + newCursorPos = menu->cursorPos + (menu->template.ySize - 1); + } else { + newCursorPos = menu->cursorPos - 1; + } + } else if (direction == SCROLL_DIRECTION_DOWN) { + if (menu->template.ySize <= 1) { + return FALSE; + } + + if (menu->cursorPos % menu->template.ySize == menu->template.ySize - 1) { + if (menu->template.loopAround == FALSE) { + return FALSE; + } + + newCursorPos = menu->cursorPos - (menu->template.ySize - 1); + } else { + newCursorPos = menu->cursorPos + 1; + } + } else if (direction == SCROLL_DIRECTION_LEFT) { + if (menu->template.xSize <= 1) { + return FALSE; + } + + if (menu->cursorPos < menu->template.ySize) { + if (menu->template.loopAround == FALSE) { + return FALSE; + } + + newCursorPos = menu->cursorPos + (menu->template.ySize * (menu->template.xSize - 1)); + } else { + newCursorPos = menu->cursorPos - menu->template.ySize; + } + } else { + if (menu->template.xSize <= 1) { + return FALSE; + } + + if (menu->cursorPos >= menu->template.ySize * (menu->template.xSize - 1)) { + if (menu->template.loopAround == FALSE) { + return FALSE; + } + + newCursorPos = menu->cursorPos % menu->template.ySize; + } else { + newCursorPos = menu->cursorPos + menu->template.ySize; + } + } + + if (menu->template.choices[newCursorPos].index == MENU_DUMMY) { + return FALSE; + } + + menu->cursorPos = newCursorPos; + return TRUE; +} + +static u8 CalcMaxEntryWidth(Menu *menu) +{ + u8 maxWidth = 0; + + u8 width; + for (u8 i = 0; i < menu->template.xSize * menu->template.ySize; i++) { + width = Font_CalcStrbufWidth(menu->template.fontID, menu->template.choices[i].entry, 0); + + if (maxWidth < width) { + maxWidth = width; + } + } + + return maxWidth; +} + +static void DrawWholeMenu(Menu *menu) +{ + const void *entry; + u8 x, y, dx; + u8 i, j; + + Window_FillTilemap(menu->template.window, Font_GetAttribute(menu->template.fontID, FONTATTR_BG_COLOR)); + + x = menu->xOffset; + dx = menu->width + menu->letterWidth * 2; + + for (i = 0; i < menu->template.xSize; i++) { + for (j = 0; j < menu->template.ySize; j++) { + entry = menu->template.choices[i * menu->template.ySize + j].entry; + y = (menu->lineHeight + menu->template.lineSpacing) * j + menu->yOffset; + + Text_AddPrinterWithParams(menu->template.window, menu->template.fontID, entry, x, y, TEXT_SPEED_NO_TRANSFER, NULL); + } + + x += dx; + } +} + +static void DrawCursor(Menu *menu) +{ + if (menu->template.suppressCursor == TRUE) { + return; + } + + u8 x, y; + CalcCursorDrawCoords(menu, &x, &y, menu->cursorPos); + ColoredArrow_Print(menu->cursor, menu->template.window, x, y); +} + +static void CalcCursorDrawCoords(Menu *menu, u8 *outX, u8 *outY, u8 cursorPos) +{ + *outX = (cursorPos / menu->template.ySize) * (menu->width + menu->letterWidth * 2); + *outY = (cursorPos % menu->template.ySize) * (menu->lineHeight + menu->template.lineSpacing) + menu->yOffset; +} + +Menu *Menu_MakeYesNoChoiceWithCursorAt(BgConfig *bgConfig, const WindowTemplate *winTemplate, u16 borderTileStart, u8 borderPalette, u8 cursorStart, u32 heapID) +{ + MenuTemplate menuTemplate; + MessageLoader *msgLoader; + StringList *choices; + + msgLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, message_bank_common_strings_2, heapID); + choices = StringList_New(2, heapID); + + StringList_AddFromMessageBank(choices, msgLoader, pl_msg_00000361_00041, 0); + StringList_AddFromMessageBank(choices, msgLoader, pl_msg_00000361_00042, MENU_CANCELED); + MessageLoader_Free(msgLoader); + + menuTemplate.choices = choices; + menuTemplate.window = Window_New(heapID, 1); + menuTemplate.fontID = FONT_SYSTEM; + menuTemplate.xSize = 1; + menuTemplate.ySize = 2; + menuTemplate.lineSpacing = 0; + menuTemplate.suppressCursor = FALSE; + menuTemplate.loopAround = FALSE; + + Window_AddFromTemplate(bgConfig, menuTemplate.window, winTemplate); + Window_DrawStandardFrame(menuTemplate.window, 1, borderTileStart, borderPalette); + + return Menu_NewAndCopyToVRAM(&menuTemplate, 8, 0, cursorStart, heapID, PAD_BUTTON_B); +} + +Menu *Menu_MakeYesNoChoice(BgConfig *bgConfig, const WindowTemplate *winTemplate, u16 borderTileStart, u8 borderPalette, u32 heapID) +{ + return Menu_MakeYesNoChoiceWithCursorAt(bgConfig, winTemplate, borderTileStart, borderPalette, 0, heapID); +} + +u32 Menu_ProcessInputAndHandleExit(Menu *menu, u32 heapID) +{ + u32 result = Menu_ProcessInput(menu); + if (result != MENU_NOTHING_CHOSEN) { + Menu_DestroyForExit(menu, heapID); + } + + return result; +} + +u32 Menu_ProcessExternalInputAndHandleExit(Menu *menu, u8 input, u32 heapID) +{ + u32 result = Menu_ProcessExternalInput(menu, input); + if (result != MENU_NOTHING_CHOSEN) { + Menu_DestroyForExit(menu, heapID); + } + + return result; +} + +void Menu_DestroyForExit(Menu *menu, u32 heapID) +{ + Window_EraseStandardFrame(menu->template.window, 0); + Window_Remove(menu->template.window); + Heap_FreeToHeapExplicit(heapID, menu->template.window); + StringList_Free(menu->template.choices); + Menu_Free(menu, NULL); +} + +static const u8 sArrowCursorBitmap[] = { + 0xff, + 0xff, + 0xff, + 0x0, + 0xff, + 0xff, + 0xff, + 0x0, + 0x21, + 0xff, + 0xff, + 0x0, + 0x11, + 0xf2, + 0xff, + 0x0, + 0x11, + 0x21, + 0xff, + 0x0, + 0x11, + 0x11, + 0xf2, + 0x0, + 0x11, + 0x11, + 0x21, + 0x0, + 0x11, + 0x11, + 0x22, + 0x0, + 0x11, + 0x21, + 0xf2, + 0x0, + 0x11, + 0x22, + 0xff, + 0x0, + 0x21, + 0xf2, + 0xff, + 0x0, + 0x22, + 0xff, + 0xff, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0 +}; + +void Window_DrawMenuCursor(Window *window, u32 x, u32 y) +{ + Window_BlitBitmapRect(window, (void *)sArrowCursorBitmap, 0, 0, 8, 16, x, y, 8, 16); +} diff --git a/src/meson.build b/src/meson.build index 314e8c9e44..c9096e7188 100644 --- a/src/meson.build +++ b/src/meson.build @@ -15,8 +15,8 @@ pokeplatinum_c = files( 'party.c', 'poffin.c', 'strbuf.c', - 'unk_0200112C.c', - 'unk_02001AF4.c', + 'list_menu.c', + 'menu.c', 'charcode_util.c', 'render_text.c', 'font.c', @@ -40,14 +40,14 @@ pokeplatinum_c = files( 'unk_0200C440.c', 'unk_0200C6E4.c', 'sys_task.c', - 'unk_0200DA60.c', + 'render_window.c', 'unk_0200F174.c', 'unk_0200F85C.c', 'unk_02012480.c', 'unk_02012744.c', 'unk_020131EC.c', 'rtc.c', - 'unk_02013A04.c', + 'string_list.c', 'screen_scroll_manager.c', 'unk_02014000.c', 'colored_arrow.c', @@ -385,7 +385,7 @@ pokeplatinum_c = files( 'overlay005/ov5_021E135C.c', 'overlay005/ov5_021E15F4.c', 'overlay005/ov5_021E1B08.c', - 'overlay005/ov5_021E1D20.c', + 'overlay005/save_info_window.c', 'overlay005/motion_blur.c', 'overlay005/field_motion_blur.c', 'overlay005/encounter_effect_core.c', @@ -807,7 +807,7 @@ pokeplatinum_c = files( 'overlay072/ov72_0223D7A0.c', 'overlay073/ov73_021D0D80.c', 'overlay073/ov73_021D3250.c', - 'overlay074/ov74_021D0D80.c', + 'applications/options_menu.c', 'overlay075/ov75_021D0D80.c', 'overlay076/ov76_0223B140.c', 'overlay076/ov76_0223B870.c', diff --git a/src/overlay005/encounter_effect.c b/src/overlay005/encounter_effect.c index cc300b6d43..606c59128d 100644 --- a/src/overlay005/encounter_effect.c +++ b/src/overlay005/encounter_effect.c @@ -1583,7 +1583,7 @@ static void ov5_021DF30C(FieldSystem *fieldSystem) } { - ov5_021D143C(fieldSystem->unk_08); + ov5_021D143C(fieldSystem->bgConfig); { G2_SetBG3ControlDCBmp(GX_BG_SCRSIZE_DCBMP_256x256, GX_BG_AREAOVER_XLU, GX_BG_BMPSCRBASE_0x20000); @@ -1616,9 +1616,9 @@ static void ov5_021DF30C(FieldSystem *fieldSystem) 0 }; - Bg_InitFromTemplate(fieldSystem->unk_08, 2, &v3, 0); + Bg_InitFromTemplate(fieldSystem->bgConfig, 2, &v3, 0); Bg_ClearTilesRange(2, 32, 0, 4); - Bg_ClearTilemap(fieldSystem->unk_08, 2); + Bg_ClearTilemap(fieldSystem->bgConfig, 2); } } @@ -1627,8 +1627,8 @@ static void ov5_021DF30C(FieldSystem *fieldSystem) static void ov5_021DF3D4(FieldSystem *fieldSystem) { - Bg_FreeTilemapBuffer(fieldSystem->unk_08, 2); - ov5_021D1434(fieldSystem->unk_08); + Bg_FreeTilemapBuffer(fieldSystem->bgConfig, 2); + ov5_021D1434(fieldSystem->bgConfig); } static u32 ov5_021DF3E8(u32 param0, BOOL param1) diff --git a/src/overlay005/encounter_effect_core.c b/src/overlay005/encounter_effect_core.c index 36a7ef3d15..35a32197d4 100644 --- a/src/overlay005/encounter_effect_core.c +++ b/src/overlay005/encounter_effect_core.c @@ -328,11 +328,11 @@ void EncounterEffect_Water_LowerLevel(SysTask *task, void *param) } break; case 4: - sub_0200F174(3, 30, 0, 0x0, 8, 1, 4); + StartScreenTransition(3, 30, 0, 0x0, 8, 1, 4); encEffect->state++; break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->state++; } break; @@ -386,11 +386,11 @@ void EncounterEffect_Water_HigherLevel(SysTask *task, void *param) } break; case 4: - sub_0200F174(3, 30, 0, 0x0, 8, 1, 4); + StartScreenTransition(3, 30, 0, 0x0, 8, 1, 4); encEffect->state++; break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->state++; } break; @@ -484,7 +484,7 @@ void EncounterEffect_Cave_LowerLevel(SysTask *task, void *param) break; case 3: HBlankSystem_Stop(encEffect->fieldSystem->unk_04->hBlankSystem); - sub_0200F174(3, 16, 16, 0x0, 12, 1, 4); + StartScreenTransition(3, 16, 16, 0x0, 12, 1, 4); caveEffect->camera = encEffect->fieldSystem->camera; distance = Camera_GetDistance(caveEffect->camera); @@ -501,7 +501,7 @@ void EncounterEffect_Cave_LowerLevel(SysTask *task, void *param) QuadraticInterpolationTaskFX32_Update(&caveEffect->camInterpolation); Camera_SetDistance(caveEffect->camInterpolation.currentValue, caveEffect->camera); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->state++; } break; @@ -542,7 +542,7 @@ void EncounterEffect_Cave_HigherLevel(SysTask *task, void *param) break; case 3: HBlankSystem_Stop(encEffect->fieldSystem->unk_04->hBlankSystem); - sub_0200F174(3, 16, 16, 0x0, 12, 1, 4); + StartScreenTransition(3, 16, 16, 0x0, 12, 1, 4); caveEffect->camera = encEffect->fieldSystem->camera; distance = Camera_GetDistance(caveEffect->camera); @@ -559,7 +559,7 @@ void EncounterEffect_Cave_HigherLevel(SysTask *task, void *param) QuadraticInterpolationTaskFX32_Update(&caveEffect->camInterpolation); Camera_SetDistance(caveEffect->camInterpolation.currentValue, caveEffect->camera); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->state++; } break; @@ -1085,7 +1085,7 @@ void EncounterEffect_Trainer_Water_LowerLevel(SysTask *param0, void *param1) v4 = Camera_GetDistance(v1->camera); QuadraticInterpolationTaskFX32_Init(&v1->unk_230, v4, v4 + (-FX32_CONST(500)), (-FX32_CONST(10)), 8); - sub_0200F174(3, 24, 0, 0x0, 8, 1, 4); + StartScreenTransition(3, 24, 0, 0x0, 8, 1, 4); v0->state++; break; @@ -1103,7 +1103,7 @@ void EncounterEffect_Trainer_Water_LowerLevel(SysTask *param0, void *param1) QuadraticInterpolationTaskFX32_Update(&v1->unk_230); Camera_SetDistance(v1->unk_230.currentValue, v1->camera); - if ((v2 == 1) && (ScreenWipe_Done() == 1)) { + if ((v2 == 1) && (IsScreenTransitionDone() == 1)) { v0->state++; } @@ -1175,7 +1175,7 @@ void EncounterEffect_Trainer_Water_HigherLevel(SysTask *param0, void *param1) GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); v1->unk_270 = Window_New(4, 1); - Window_Add(v0->fieldSystem->unk_08, v1->unk_270, 3, 0, 0, 32, 32, 0, 0); + Window_Add(v0->fieldSystem->bgConfig, v1->unk_270, 3, 0, 0, 32, 32, 0, 0); { GXRgb v6 = 0; @@ -1311,7 +1311,7 @@ void EncounterEffect_Trainer_Water_HigherLevel(SysTask *param0, void *param1) Windows_Delete(v1->unk_270, 1); Bg_ClearTilesRange(3, 32, 0, 4); - Bg_ClearTilemap(v0->fieldSystem->unk_08, 3); + Bg_ClearTilemap(v0->fieldSystem->bgConfig, 3); EncounterEffect_Finish(v0, param0); return; @@ -1440,7 +1440,7 @@ void EncounterEffect_Trainer_Cave_LowerLevel(SysTask *param0, void *param1) v3 = Camera_GetDistance(v1->camera); QuadraticInterpolationTaskFX32_Init(&v1->unk_238, v3, v3 + (-FX32_CONST(1000)), (FX32_CONST(10)), 8); - sub_0200F174(3, 18, 0, 0x0, 8, 1, 4); + StartScreenTransition(3, 18, 0, 0x0, 8, 1, 4); v0->state++; break; @@ -1449,7 +1449,7 @@ void EncounterEffect_Trainer_Cave_LowerLevel(SysTask *param0, void *param1) QuadraticInterpolationTaskFX32_Update(&v1->unk_238); Camera_SetDistance(v1->unk_238.currentValue, v1->camera); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->state++; } @@ -1507,7 +1507,7 @@ void EncounterEffect_Trainer_Cave_HigherLevel(SysTask *param0, void *param1) GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); v1->unk_264 = Window_New(4, 1); - Window_Add(v0->fieldSystem->unk_08, v1->unk_264, 3, 0, 0, 32, 32, 0, 0); + Window_Add(v0->fieldSystem->bgConfig, v1->unk_264, 3, 0, 0, 32, 32, 0, 0); { GXRgb v6 = 0; @@ -1658,7 +1658,7 @@ void EncounterEffect_Trainer_Cave_HigherLevel(SysTask *param0, void *param1) Windows_Delete(v1->unk_264, 1); Bg_ClearTilesRange(3, 32, 0, 4); - Bg_ClearTilemap(v0->fieldSystem->unk_08, 3); + Bg_ClearTilemap(v0->fieldSystem->bgConfig, 3); EncounterEffect_Finish(v0, param0); break; @@ -1778,7 +1778,7 @@ void EncounterEffect_Frontier(SysTask *param0, void *param1) } HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem); - sub_0200F174(3, 16, 0, 0x0, 6, 1, 4); + StartScreenTransition(3, 16, 0, 0x0, 6, 1, 4); v0->state++; break; @@ -1791,7 +1791,7 @@ void EncounterEffect_Frontier(SysTask *param0, void *param1) v1->unk_200, &v4); } - if ((v2 == 1) && (ScreenWipe_Done() == 1)) { + if ((v2 == 1) && (IsScreenTransitionDone() == 1)) { v0->state++; } @@ -1902,12 +1902,12 @@ void EncounterEffect_Double(SysTask *param0, void *param1) case 5: HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem); - sub_0200F174(3, 34, 0, 0x0, 8, 1, 4); + StartScreenTransition(3, 34, 0, 0x0, 8, 1, 4); v0->state++; break; case 6: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0->state++; } @@ -2062,12 +2062,12 @@ void EncounterEffect_GalacticGrunt(SysTask *param0, void *param1) HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem); - sub_0200F174(3, 34, 0, 0x0, 12, 1, 4); + StartScreenTransition(3, 34, 0, 0x0, 12, 1, 4); v0->state++; break; case 6: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->state++; } @@ -2147,7 +2147,7 @@ void EncounterEffect_GalacticBoss(SysTask *param0, void *param1) v1->unk_04 = ov5_021DEBEC(4); v1->unk_00 = Window_New(4, 1); - Window_Add(v0->fieldSystem->unk_08, v1->unk_00, 3, 0, 0, 32, 32, 0, 0); + Window_Add(v0->fieldSystem->bgConfig, v1->unk_00, 3, 0, 0, 32, 32, 0, 0); { GXRgb v3 = 0; @@ -2235,7 +2235,7 @@ void EncounterEffect_GalacticBoss(SysTask *param0, void *param1) Windows_Delete(v1->unk_00, 1); Bg_ClearTilesRange(3, 32, 0, 4); - Bg_ClearTilemap(v0->fieldSystem->unk_08, 3); + Bg_ClearTilemap(v0->fieldSystem->bgConfig, 3); G2_SetOBJMosaicSize(0, 0); @@ -2452,12 +2452,12 @@ void EncounterEffect_Mythical(SysTask *task, void *param) break; case 5: - sub_0200F174(3, 0, 0, 0x7fff, 10, 1, 4); + StartScreenTransition(3, 0, 0, 0x7fff, 10, 1, 4); encEffect->state++; break; case 6: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->effectComplete = FALSE; encEffect->state++; } @@ -2555,12 +2555,12 @@ void EncounterEffect_Legendary(SysTask *task, void *param) break; case 7: - sub_0200F174(3, 0, 0, 0x7fff, 60, 1, 4); + StartScreenTransition(3, 0, 0, 0x7fff, 60, 1, 4); encEffect->state++; break; case 8: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->effectComplete = FALSE; encEffect->state++; } @@ -2900,7 +2900,7 @@ static BOOL EncounterEffect_GymLeader(EncounterEffect *encEffect, enum HeapId he Graphics_LoadPaletteFromOpenNARC(encEffect->narc, 11, 0, 2 * 0x20, 0x20, heapID); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); - Window_Add(encEffect->fieldSystem->unk_08, &v0->unk_2E0, 2, 0, 10, 16, 2, 2, 1); + Window_Add(encEffect->fieldSystem->bgConfig, &v0->unk_2E0, 2, 0, 10, 16, 2, 2, 1); Window_FillTilemap(&v0->unk_2E0, 0); v7 = EncounterEffect_GetGymLeaderName(param->trainerID, heapID); Text_AddPrinterWithParamsAndColor(&v0->unk_2E0, FONT_SYSTEM, v7, 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL); @@ -2942,7 +2942,7 @@ static BOOL EncounterEffect_GymLeader(EncounterEffect *encEffect, enum HeapId he case 3: ov5_021DE3D0( - encEffect->narc, param->unk_12, param->unk_11, param->unk_10, 0, 1, encEffect->fieldSystem->unk_08, 3); + encEffect->narc, param->unk_12, param->unk_11, param->unk_10, 0, 1, encEffect->fieldSystem->bgConfig, 3); v0->unk_2F0 = 1; ov5_021DED20(encEffect, v0->unk_40, 6, 8, 16, (GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ), (GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_OBJ)); @@ -3029,7 +3029,7 @@ static BOOL EncounterEffect_GymLeader(EncounterEffect *encEffect, enum HeapId he sub_0200AB4C(-14, GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BD, 1); - Bg_ScheduleScroll(encEffect->fieldSystem->unk_08, 2, 0, -((v0->unk_00.currentValue >> FX32_SHIFT) + -92)); + Bg_ScheduleScroll(encEffect->fieldSystem->bgConfig, 2, 0, -((v0->unk_00.currentValue >> FX32_SHIFT) + -92)); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); Bg_SetPriority(2, 0); encEffect->state++; @@ -3064,13 +3064,13 @@ static BOOL EncounterEffect_GymLeader(EncounterEffect *encEffect, enum HeapId he case 13: - sub_0200F174(3, 0, 0, 0x7fff, 15, 1, 4); + StartScreenTransition(3, 0, 0, 0x7fff, 15, 1, 4); encEffect->state++; break; case 14: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->state++; } @@ -3095,13 +3095,13 @@ static BOOL EncounterEffect_GymLeader(EncounterEffect *encEffect, enum HeapId he sub_0200AB4C(0, GX_BLEND_PLANEMASK_NONE, 1); - Bg_SetOffset(encEffect->fieldSystem->unk_08, 2, 0, 0); + Bg_SetOffset(encEffect->fieldSystem->bgConfig, 2, 0, 0); return 1; } if (v0->unk_2F0 == 1) { - Bg_ScheduleScroll(encEffect->fieldSystem->unk_08, 3, 0, v0->unk_2F4); + Bg_ScheduleScroll(encEffect->fieldSystem->bgConfig, 3, 0, v0->unk_2F4); v0->unk_2F4 = (v0->unk_2F4 + 30) % 512; } @@ -3335,7 +3335,7 @@ static BOOL EncounterEffect_EliteFourChampion(EncounterEffect *encEffect, enum H Graphics_LoadPaletteFromOpenNARC(encEffect->narc, 11, 0, 2 * 0x20, 0x20, heapID); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); - Window_Add(encEffect->fieldSystem->unk_08, &v0->unk_358, 2, 21, 13, 11, 2, 2, 1); + Window_Add(encEffect->fieldSystem->bgConfig, &v0->unk_358, 2, 21, 13, 11, 2, 2, 1); Window_FillTilemap(&v0->unk_358, 0); v9 = EncounterEffect_GetGymLeaderName(param->trainerID, heapID); Text_AddPrinterWithParamsAndColor(&v0->unk_358, FONT_SYSTEM, v9, 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 0), NULL); @@ -3507,7 +3507,7 @@ static BOOL EncounterEffect_EliteFourChampion(EncounterEffect *encEffect, enum H QuadraticInterpolationTaskFX32_Init(&v0->unk_00, 0, (FX32_CONST(192.0f)), (FX32_CONST(24.0f)), 16); QuadraticInterpolationTaskFX32_Init(&v0->unk_18, 0, (FX32_CONST(192.0f)), (FX32_CONST(24.0f)), 16); - sub_0200F174(3, 0, 0, 0x7fff, 8, 1, 4); + StartScreenTransition(3, 0, 0, 0x7fff, 8, 1, 4); } break; @@ -3530,7 +3530,7 @@ static BOOL EncounterEffect_EliteFourChampion(EncounterEffect *encEffect, enum H v3.x += (-16 * FX32_ONE); CellActor_SetPosition(v0->unk_2CC[3], &v3); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { encEffect->state++; } diff --git a/src/overlay005/fieldmap.c b/src/overlay005/fieldmap.c index 189d0d750e..fe68e63205 100644 --- a/src/overlay005/fieldmap.c +++ b/src/overlay005/fieldmap.c @@ -138,7 +138,7 @@ static void ov5_021D0D80(void *param0) { FieldSystem *fieldSystem = param0; - Bg_RunScheduledUpdates(fieldSystem->unk_08); + Bg_RunScheduledUpdates(fieldSystem->bgConfig); sub_0201DCAC(); sub_0200A858(); @@ -190,7 +190,7 @@ static BOOL FieldMap_Init(OverlayManager *overlayMan, int *param1) ov5_021D1414(); - sub_0201DBEC(128, 4); + VRAMTransferManager_New(128, 4); sub_02020B90(4, 4); Easy3D_Init(4); @@ -198,8 +198,8 @@ static BOOL FieldMap_Init(OverlayManager *overlayMan, int *param1) ov5_021D154C(); GXLayers_SwapDisplay(); - fieldSystem->unk_08 = BgConfig_New(4); - ov5_021D1444(fieldSystem->unk_08); + fieldSystem->bgConfig = BgConfig_New(4); + ov5_021D1444(fieldSystem->bgConfig); sub_0205D8CC(0, 1); sub_0203F5C0(fieldSystem, 4); break; @@ -323,7 +323,7 @@ static BOOL FieldMap_Exit(OverlayManager *overlayMan, int *param1) ov5_021D57D8(&fieldSystem->unk_48); ov5_021D5894(&fieldSystem->unk_44); ov5_021D1570(); - ov5_021D1524(fieldSystem->unk_08); + ov5_021D1524(fieldSystem->bgConfig); ov5_021D5C14(fieldSystem); (*param1)++; } @@ -332,11 +332,11 @@ static BOOL FieldMap_Exit(OverlayManager *overlayMan, int *param1) if (ov5_021D5C30(fieldSystem)) { ov5_021D15E8(); sub_02020BD0(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); Easy3D_Shutdown(); ov5_021D1AE4(fieldSystem->unk_04->unk_04); SetMainCallback(NULL, NULL); - Heap_FreeToHeap(fieldSystem->unk_08); + Heap_FreeToHeap(fieldSystem->bgConfig); Heap_FreeToHeap(fieldSystem->unk_04); fieldSystem->unk_04 = NULL; @@ -784,10 +784,10 @@ static void ov5_021D173C(FieldSystem *fieldSystem) void ov5_021D1744(const u8 param0) { if (param0 == 1) { - sub_0200F174( + StartScreenTransition( 0, 1, 1, 0x0, 6, 1, 4); } else if (param0 == 0) { - sub_0200F174( + StartScreenTransition( 0, 0, 0, 0x0, 6, 1, 4); } else { GF_ASSERT(FALSE); @@ -922,7 +922,7 @@ static void ov5_021D1968(FieldSystem *fieldSystem) fieldSystem->unk_04->unk_0C = ov5_021D5EB8(fieldSystem); } - fieldSystem->unk_04->unk_08 = ov5_021DD98C(fieldSystem->unk_08); + fieldSystem->unk_04->unk_08 = ov5_021DD98C(fieldSystem->bgConfig); fieldSystem->unk_64 = ov5_021E1B08(4); fieldSystem->unk_04->unk_10 = ov5_021D5CB0(); diff --git a/src/overlay005/ov5_021D431C.c b/src/overlay005/ov5_021D431C.c index f8c0642681..f8f5eb3afe 100644 --- a/src/overlay005/ov5_021D431C.c +++ b/src/overlay005/ov5_021D431C.c @@ -296,7 +296,7 @@ BOOL ov5_021D453C(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1) (param1->unk_00)++; } break; case 1: - sub_02056B30(fieldSystem->unk_10, 0, 9, 1, 0x0, 6, 1, 11); + sub_02056B30(fieldSystem->taskManager, 0, 9, 1, 0x0, 6, 1, 11); { int v9; int v10; @@ -386,13 +386,13 @@ BOOL ov5_021D453C(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1) v16 = ov5_021D42F0(fieldSystem->unk_54, 1); - if (v16 && ScreenWipe_Done() && (param1->unk_24 == Camera_GetFOV(fieldSystem->camera))) { + if (v16 && IsScreenTransitionDone() && (param1->unk_24 == Camera_GetFOV(fieldSystem->camera))) { ov5_021D42B0(fieldSystem->unk_50, fieldSystem->unk_54, 1); return 1; } } break; case 6: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -579,9 +579,9 @@ BOOL ov5_021D4858(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1, cons v10 = ov5_021D42F0(fieldSystem->unk_54, 2); - if (v10 && ScreenWipe_Done()) { + if (v10 && IsScreenTransitionDone()) { ov5_021D42B0(fieldSystem->unk_50, fieldSystem->unk_54, 2); - sub_020057A4(1557, 0); + Sound_StopEffect(1557, 0); return 1; } } break; @@ -675,10 +675,10 @@ BOOL ov5_021D4A24(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1, cons v9 = ov5_021D42F0(fieldSystem->unk_54, 2); - if (v9 && ScreenWipe_Done()) { + if (v9 && IsScreenTransitionDone()) { ov5_021D42B0(fieldSystem->unk_50, fieldSystem->unk_54, 2); - sub_020057A4(1557, 0); + Sound_StopEffect(1557, 0); return 1; } } break; @@ -814,7 +814,7 @@ void ov5_021D4D48(FieldSystem *fieldSystem, const u8 param1) u8 *v0 = Heap_AllocFromHeapAtEnd(4, sizeof(u8)); *v0 = param1; - FieldTask_Start(fieldSystem->unk_10, ov5_021D4BC8, v0); + FieldTask_Start(fieldSystem->taskManager, ov5_021D4BC8, v0); } void ov5_021D4D68(FieldSystem *fieldSystem, const u8 param1) @@ -889,7 +889,7 @@ BOOL ov5_021D4E10(TaskManager *param0) Camera_AdjustFOV(-96, fieldSystem->camera); } - sub_0200F174(0, 1, 1, 0x7fff, 6, 1, 11); + StartScreenTransition(0, 1, 1, 0x7fff, 6, 1, 11); v2->unk_08 = 1; break; case 1: @@ -907,7 +907,7 @@ BOOL ov5_021D4E10(TaskManager *param0) } break; case 3: - if (ScreenWipe_Done() && (v2->unk_0C == Camera_GetFOV(fieldSystem->camera))) { + if (IsScreenTransitionDone() && (v2->unk_0C == Camera_GetFOV(fieldSystem->camera))) { Heap_FreeToHeap(v2); return 1; } @@ -938,13 +938,13 @@ BOOL ov5_021D4F14(TaskManager *param0) v1->unk_04 = 0; Sound_PlayEffect(1539); - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, 11); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, 11); v1->unk_08 = 1; (v1->unk_00)++; } break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { Heap_FreeToHeap(v1); return 1; } @@ -975,7 +975,7 @@ BOOL ov5_021D4FA0(TaskManager *param0) (v1->unk_00)++; } break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { Heap_FreeToHeap(v1); return 1; } @@ -1054,7 +1054,7 @@ BOOL ov5_021D5020(TaskManager *param0) } break; case 3: - if (ScreenWipe_Done() && (v2->unk_0C == Camera_GetFOV(fieldSystem->camera))) { + if (IsScreenTransitionDone() && (v2->unk_0C == Camera_GetFOV(fieldSystem->camera))) { Heap_FreeToHeap(v2); return 1; } @@ -1107,7 +1107,7 @@ BOOL ov5_021D5150(TaskManager *param0) } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { Heap_FreeToHeap(v2); return 1; } diff --git a/src/overlay005/ov5_021D5EB8.c b/src/overlay005/ov5_021D5EB8.c index c6d86ca344..3ead07b203 100644 --- a/src/overlay005/ov5_021D5EB8.c +++ b/src/overlay005/ov5_021D5EB8.c @@ -1510,7 +1510,7 @@ static void ov5_021D6DCC(UnkStruct_ov5_021D6594 *param0, int param1) NNS_G2dGetUnpackedCharacterData(v0.unk_04, &v0.unk_10); - Bg_LoadTiles(param0->fieldSystem->unk_08, 2, v0.unk_10->pRawData, v0.unk_10->szByte, 0); + Bg_LoadTiles(param0->fieldSystem->bgConfig, 2, v0.unk_10->pRawData, v0.unk_10->szByte, 0); Heap_FreeToHeap(v0.unk_04); v0.unk_04 = NULL; @@ -1529,10 +1529,10 @@ static void ov5_021D6E20(UnkStruct_ov5_021D6594 *param0, int param1) NNS_G2dGetUnpackedScreenData(v0.unk_08, &v0.unk_0C); - Bg_CopyTilemapBufferRangeToVRAM(param0->fieldSystem->unk_08, 2, (void *)v0.unk_0C->rawData, v0.unk_0C->szByte, 0); - Bg_LoadTilemapBuffer(param0->fieldSystem->unk_08, 2, (void *)v0.unk_0C->rawData, v0.unk_0C->szByte); - Bg_ChangeTilemapRectPalette(param0->fieldSystem->unk_08, 2, 0, 0, 32, 32, 6); - Bg_CopyTilemapBufferToVRAM(param0->fieldSystem->unk_08, 2); + Bg_CopyTilemapBufferRangeToVRAM(param0->fieldSystem->bgConfig, 2, (void *)v0.unk_0C->rawData, v0.unk_0C->szByte, 0); + Bg_LoadTilemapBuffer(param0->fieldSystem->bgConfig, 2, (void *)v0.unk_0C->rawData, v0.unk_0C->szByte); + Bg_ChangeTilemapRectPalette(param0->fieldSystem->bgConfig, 2, 0, 0, 32, 32, 6); + Bg_CopyTilemapBufferToVRAM(param0->fieldSystem->bgConfig, 2); Heap_FreeToHeap(v0.unk_08); v0.unk_08 = NULL; @@ -5243,8 +5243,8 @@ static void ov5_021DB144(SysTask *param0, void *param1) v5 = Unk_ov5_02201D38[v1->unk_B4 / 8]; - Bg_ScheduleScroll(v0->unk_00->fieldSystem->unk_08, 2, 0, (v1->unk_AC >> FX32_SHIFT) + v5); - Bg_ScheduleScroll(v0->unk_00->fieldSystem->unk_08, 2, 3, (v1->unk_B0 >> FX32_SHIFT)); + Bg_ScheduleScroll(v0->unk_00->fieldSystem->bgConfig, 2, 0, (v1->unk_AC >> FX32_SHIFT) + v5); + Bg_ScheduleScroll(v0->unk_00->fieldSystem->bgConfig, 2, 3, (v1->unk_B0 >> FX32_SHIFT)); } } @@ -5319,7 +5319,7 @@ static void ov5_021DB4B8(UnkStruct_ov5_021DB4B8 *param0, int param1) static void ov5_021DB4E4(UnkStruct_ov5_021DB4B8 *param0) { - sub_020057A4(param0->unk_BA0, 0); + Sound_StopEffect(param0->unk_BA0, 0); param0->unk_B9C = 0; } diff --git a/src/overlay005/ov5_021DC018.c b/src/overlay005/ov5_021DC018.c index e1e183ed0a..2d56585c18 100644 --- a/src/overlay005/ov5_021DC018.c +++ b/src/overlay005/ov5_021DC018.c @@ -3,33 +3,27 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" - #include "field/field_system.h" #include "overlay005/struct_ov5_021DC1A4_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "coins.h" #include "core_sys.h" #include "font.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202D05C.h" @@ -57,14 +51,14 @@ struct UnkStruct_ov5_021DC1A4_t { u16 *unk_A0; u16 *unk_A4; u16 *unk_A8; - UnkStruct_02081CF4 unk_AC; - UIControlData *unk_B8; - ResourceMetadata unk_BC[28]; - UnkStruct_ov84_02240FA8 unk_19C; - BmpList *unk_1BC; + MenuTemplate unk_AC; + Menu *unk_B8; + StringList unk_BC[28]; + ListMenuTemplate unk_19C; + ListMenu *unk_1BC; u16 unk_1C0; u16 unk_1C2; - ResourceMetadata unk_1C4[28]; + StringList unk_1C4[28]; u16 unk_2A4[28]; u16 unk_2DC; }; @@ -87,8 +81,8 @@ static void ov5_021DC530(UnkStruct_ov5_021DC1A4 *param0, u32 param1); static void ov5_021DC708(UnkStruct_ov5_021DC1A4 *param0, u32 param1, u32 param2, u32 param3); static u32 ov5_021DC7A8(UnkStruct_ov5_021DC1A4 *param0); static void ov5_021DC7E4(UnkStruct_ov5_021DC1A4 *param0); -static void ov5_021DC8F4(BmpList *param0, u32 param1, u8 param2); -static void ov5_021DC918(BmpList *param0, u32 param1, u8 param2); +static void ov5_021DC8F4(ListMenu *param0, u32 param1, u8 param2); +static void ov5_021DC918(ListMenu *param0, u32 param1, u8 param2); static void ov5_021DC95C(SysTask *param0, void *param1); static void ov5_021DCA28(UnkStruct_ov5_021DC1A4 *param0); static void ov5_021DCA90(UnkStruct_ov5_021DC1A4 *param0, u16 param1, u32 param2); @@ -132,13 +126,13 @@ static void ov5_021DC018(FieldSystem *fieldSystem, UnkStruct_ov5_021DC1A4 *param param1->unk_2DC = param4; for (v0 = 0; v0 < 28; v0++) { - param1->unk_BC[v0].unk_00 = NULL; - param1->unk_BC[v0].unk_04 = 0; + param1->unk_BC[v0].entry = NULL; + param1->unk_BC[v0].index = 0; } for (v0 = 0; v0 < 28; v0++) { - param1->unk_1C4[v0].unk_00 = NULL; - param1->unk_1C4[v0].unk_04 = 0; + param1->unk_1C4[v0].entry = NULL; + param1->unk_1C4[v0].index = 0; param1->unk_2A4[v0] = 0xff; } @@ -194,13 +188,13 @@ void ov5_021DC1AC(UnkStruct_ov5_021DC1A4 *param0) param0->unk_99 -= param0->unk_9B * 2; } - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, v0, param0->unk_9B * 2, 13, ((1 + (10 * 4)) + (10 * 2))); - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, v0, param0->unk_9B * 2, 13, ((1 + (10 * 4)) + (10 * 2))); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); ov5_021DC33C(param0); - param0->unk_B8 = sub_02001B9C(¶m0->unk_AC, param0->unk_96, 4); + param0->unk_B8 = Menu_NewSimple(¶m0->unk_AC, param0->unk_96, 4); param0->unk_04 = SysTask_Start(ov5_021DC3B0, param0, 0); return; @@ -216,11 +210,11 @@ static void ov5_021DC290(UnkStruct_ov5_021DC1A4 *param0, u32 param1, u32 param2) MessageLoader_GetStrbuf(param0->unk_8C, param1, v2); StringTemplate_Format(param0->unk_90, param0->unk_1C[param0->unk_9B], v2); - param0->unk_BC[param0->unk_9B].unk_00 = (const void *)param0->unk_1C[param0->unk_9B]; + param0->unk_BC[param0->unk_9B].entry = (const void *)param0->unk_1C[param0->unk_9B]; Strbuf_Free(v2); } - param0->unk_BC[param0->unk_9B].unk_04 = param2; + param0->unk_BC[param0->unk_9B].index = param2; param0->unk_9B++; return; @@ -235,11 +229,11 @@ static u32 ov5_021DC300(UnkStruct_ov5_021DC1A4 *param0) v2 = 0; for (v0 = 0; v0 < param0->unk_9B; v0++) { - if (param0->unk_BC[v0].unk_00 == NULL) { + if (param0->unk_BC[v0].entry == NULL) { break; } - v1 = Font_CalcStringWidthWithCursorControl(FONT_SYSTEM, (Strbuf *)param0->unk_BC[v0].unk_00); + v1 = Font_CalcStringWidthWithCursorControl(FONT_SYSTEM, (Strbuf *)param0->unk_BC[v0].entry); if (v2 < v1) { v2 = v1; @@ -251,18 +245,18 @@ static u32 ov5_021DC300(UnkStruct_ov5_021DC1A4 *param0) static void ov5_021DC33C(UnkStruct_ov5_021DC1A4 *param0) { - param0->unk_AC.unk_00 = param0->unk_BC; - param0->unk_AC.unk_04 = ¶m0->unk_08; - param0->unk_AC.unk_08 = 0; - param0->unk_AC.unk_09 = 1; - param0->unk_AC.unk_0A = param0->unk_9B; - param0->unk_AC.unk_0B_0 = 0; - param0->unk_AC.unk_0B_4 = 0; + param0->unk_AC.choices = param0->unk_BC; + param0->unk_AC.window = ¶m0->unk_08; + param0->unk_AC.fontID = FONT_SYSTEM; + param0->unk_AC.xSize = 1; + param0->unk_AC.ySize = param0->unk_9B; + param0->unk_AC.lineSpacing = 0; + param0->unk_AC.suppressCursor = FALSE; if (param0->unk_9B >= 4) { - param0->unk_AC.unk_0B_6 = 1; + param0->unk_AC.loopAround = TRUE; } else { - param0->unk_AC.unk_0B_6 = 0; + param0->unk_AC.loopAround = FALSE; } return; @@ -280,11 +274,11 @@ static void ov5_021DC3B0(SysTask *param0, void *param1) return; } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } - v0 = sub_02001BE0(v1->unk_B8); + v0 = Menu_ProcessInput(v1->unk_B8); switch (v0) { case 0xffffffff: @@ -309,9 +303,9 @@ void ov5_021DC424(UnkStruct_ov5_021DC1A4 *param0) int v0; Sound_PlayEffect(1500); - sub_02001BC4(param0->unk_B8, NULL); - Window_Clear(param0->unk_AC.unk_04, 0); - Window_Remove(param0->unk_AC.unk_04); + Menu_Free(param0->unk_B8, NULL); + Window_EraseStandardFrame(param0->unk_AC.window, 0); + Window_Remove(param0->unk_AC.window); for (v0 = 0; v0 < 28; v0++) { Strbuf_Free(param0->unk_1C[v0]); @@ -379,16 +373,16 @@ void ov5_021DC528(UnkStruct_ov5_021DC1A4 *param0, u16 param1) static void ov5_021DC530(UnkStruct_ov5_021DC1A4 *param0, u32 param1) { if (param0->unk_9B > 8) { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, param1, 8 * 2, 13, ((1 + (10 * 4)) + (10 * 2))); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, param1, 8 * 2, 13, ((1 + (10 * 4)) + (10 * 2))); } else { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, param1, param0->unk_9B * 2, 13, ((1 + (10 * 4)) + (10 * 2))); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, param1, param0->unk_9B * 2, 13, ((1 + (10 * 4)) + (10 * 2))); } - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); ov5_021DC7E4(param0); - param0->unk_1BC = sub_0200112C((const UnkStruct_ov84_02240FA8 *)¶m0->unk_19C, 0, param0->unk_96, 4); + param0->unk_1BC = ListMenu_New((const ListMenuTemplate *)¶m0->unk_19C, 0, param0->unk_96, 4); ov5_021DCAF4(param0); param0->unk_04 = SysTask_Start(ov5_021DC95C, param0, 0); @@ -409,20 +403,20 @@ void ov5_021DC600(UnkStruct_ov5_021DC1A4 *param0, u16 *param1, u16 *param2) } if (param0->unk_9B > 8) { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, v0, 8 * 2, 13, ((1 + (10 * 4)) + (10 * 2))); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, v0, 8 * 2, 13, ((1 + (10 * 4)) + (10 * 2))); } else { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, v0, param0->unk_9B * 2, 13, ((1 + (10 * 4)) + (10 * 2))); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, v0, param0->unk_9B * 2, 13, ((1 + (10 * 4)) + (10 * 2))); } - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); ov5_021DC7E4(param0); param0->unk_A4 = param1; param0->unk_A8 = param2; param0->unk_2DC = ((*param0->unk_A4) + (*param0->unk_A8)); - param0->unk_1BC = sub_0200112C((const UnkStruct_ov84_02240FA8 *)¶m0->unk_19C, *param1, *param2, 4); + param0->unk_1BC = ListMenu_New((const ListMenuTemplate *)¶m0->unk_19C, *param1, *param2, 4); ov5_021DCAF4(param0); @@ -440,14 +434,14 @@ static void ov5_021DC708(UnkStruct_ov5_021DC1A4 *param0, u32 param1, u32 param2, MessageLoader_GetStrbuf(param0->unk_8C, param1, v2); StringTemplate_Format(param0->unk_90, param0->unk_1C[param0->unk_9B], v2); - param0->unk_1C4[param0->unk_9B].unk_00 = (const void *)param0->unk_1C[param0->unk_9B]; + param0->unk_1C4[param0->unk_9B].entry = (const void *)param0->unk_1C[param0->unk_9B]; Strbuf_Free(v2); } if (param3 == 0xfa) { - param0->unk_1C4[param0->unk_9B].unk_04 = 0xfffffffd; + param0->unk_1C4[param0->unk_9B].index = 0xfffffffd; } else { - param0->unk_1C4[param0->unk_9B].unk_04 = param3; + param0->unk_1C4[param0->unk_9B].index = param3; } param0->unk_2A4[param0->unk_9B] = param2; @@ -465,11 +459,11 @@ static u32 ov5_021DC7A8(UnkStruct_ov5_021DC1A4 *param0) v2 = 0; for (v0 = 0; v0 < param0->unk_9B; v0++) { - if (param0->unk_1C4[v0].unk_00 == NULL) { + if (param0->unk_1C4[v0].entry == NULL) { break; } - v1 = Font_CalcStringWidthWithCursorControl(FONT_SYSTEM, (Strbuf *)param0->unk_1C4[v0].unk_00); + v1 = Font_CalcStringWidthWithCursorControl(FONT_SYSTEM, (Strbuf *)param0->unk_1C4[v0].entry); if (v2 < v1) { v2 = v1; @@ -481,46 +475,46 @@ static u32 ov5_021DC7A8(UnkStruct_ov5_021DC1A4 *param0) static void ov5_021DC7E4(UnkStruct_ov5_021DC1A4 *param0) { - param0->unk_19C.unk_00 = param0->unk_1C4; - param0->unk_19C.unk_04 = ov5_021DC918; - param0->unk_19C.unk_08 = ov5_021DC8F4; - param0->unk_19C.unk_0C = ¶m0->unk_08; - param0->unk_19C.unk_10 = param0->unk_9B; - param0->unk_19C.unk_12 = 8; - param0->unk_19C.unk_14 = 1; - param0->unk_19C.unk_15 = 12; - param0->unk_19C.unk_16 = 2; - param0->unk_19C.unk_17_0 = 1; - param0->unk_19C.unk_17_4 = 1; - param0->unk_19C.unk_18_0 = 15; - param0->unk_19C.unk_18_4 = 2; - param0->unk_19C.unk_1A_0 = 0; - param0->unk_19C.unk_1A_3 = 16; - param0->unk_19C.unk_1A_7 = 1; - param0->unk_19C.unk_1A_9 = 0; - param0->unk_19C.unk_1A_15 = 0; - param0->unk_19C.unk_1C = (void *)param0; + param0->unk_19C.choices = param0->unk_1C4; + param0->unk_19C.cursorCallback = ov5_021DC918; + param0->unk_19C.printCallback = ov5_021DC8F4; + param0->unk_19C.window = ¶m0->unk_08; + param0->unk_19C.count = param0->unk_9B; + param0->unk_19C.maxDisplay = 8; + param0->unk_19C.headerXOffset = 1; + param0->unk_19C.textXOffset = 12; + param0->unk_19C.cursorXOffset = 2; + param0->unk_19C.yOffset = 1; + param0->unk_19C.textColorFg = 1; + param0->unk_19C.textColorBg = 15; + param0->unk_19C.textColorShadow = 2; + param0->unk_19C.letterSpacing = 0; + param0->unk_19C.lineSpacing = 0; + param0->unk_19C.pagerMode = PAGER_MODE_LEFT_RIGHT_PAD; + param0->unk_19C.fontID = FONT_SYSTEM; + param0->unk_19C.cursorType = 0; + param0->unk_19C.tmp = (void *)param0; return; } -static void ov5_021DC8F4(BmpList *param0, u32 param1, u8 param2) +static void ov5_021DC8F4(ListMenu *param0, u32 param1, u8 param2) { if (param1 == 0xfffffffd) { - sub_0200147C(param0, 3, 15, 4); + ListMenu_SetAltTextColors(param0, 3, 15, 4); } else { - sub_0200147C(param0, 1, 15, 2); + ListMenu_SetAltTextColors(param0, 1, 15, 2); } } -static void ov5_021DC918(BmpList *param0, u32 param1, u8 param2) +static void ov5_021DC918(ListMenu *param0, u32 param1, u8 param2) { u32 v0, v1; u16 v2 = 0; u16 v3 = 0; - UnkStruct_ov5_021DC1A4 *v4 = (UnkStruct_ov5_021DC1A4 *)sub_02001504(param0, 19); + UnkStruct_ov5_021DC1A4 *v4 = (UnkStruct_ov5_021DC1A4 *)ListMenu_GetAttribute(param0, 19); - sub_020014DC(param0, &v2, &v3); + ListMenu_GetListAndCursorPos(param0, &v2, &v3); if ((v4->unk_A4 != NULL) && (v4->unk_A8 != NULL)) { *v4->unk_A4 = v2; @@ -543,14 +537,14 @@ static void ov5_021DC95C(SysTask *param0, void *param1) return; } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } - v1 = sub_02001288(v2->unk_1BC); + v1 = ListMenu_ProcessInput(v2->unk_1BC); v0 = v2->unk_2DC; - sub_020014D0(v2->unk_1BC, &v2->unk_2DC); + ListMenu_CalcTrueCursorPos(v2->unk_1BC, &v2->unk_2DC); if (v0 != v2->unk_2DC) { Sound_PlayEffect(1500); @@ -585,8 +579,8 @@ static void ov5_021DCA28(UnkStruct_ov5_021DC1A4 *param0) int v0; Sound_PlayEffect(1500); - sub_02001384(param0->unk_1BC, NULL, NULL); - Window_Clear(param0->unk_19C.unk_0C, 0); + ListMenu_Free(param0->unk_1BC, NULL, NULL); + Window_EraseStandardFrame(param0->unk_19C.window, 0); Window_Remove(¶m0->unk_08); for (v0 = 0; v0 < 28; v0++) { @@ -620,7 +614,7 @@ static void ov5_021DCA90(UnkStruct_ov5_021DC1A4 *param0, u16 param1, u32 param2) static void ov5_021DCAF4(UnkStruct_ov5_021DC1A4 *param0) { - sub_020014D0(param0->unk_1BC, ¶m0->unk_1C2); + ListMenu_CalcTrueCursorPos(param0->unk_1BC, ¶m0->unk_1C2); if (param0->unk_2A4[param0->unk_1C2] != 0xff) { ov5_021DCA90(param0, param0->unk_2A4[param0->unk_1C2], 0); @@ -644,15 +638,15 @@ void ov5_021DCB24(FieldSystem *fieldSystem, u8 param1, u8 param2, u16 *param3, S v1 = (v1 / 8) + 1; } - Window_Add(v3->fieldSystem->unk_08, &v3->unk_08, 3, v3->unk_98, v3->unk_99, v1, 4, 13, ((1 + (10 * 4)) + (10 * 2)) + (16 * 10)); - sub_0200DAA4(v3->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(&v3->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(v3->fieldSystem->bgConfig, &v3->unk_08, 3, v3->unk_98, v3->unk_99, v1, 4, 13, ((1 + (10 * 4)) + (10 * 2)) + (16 * 10)); + LoadStandardWindowGraphics(v3->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(&v3->unk_08, 1, 1024 - (18 + 12) - 9, 11); Window_FillRectWithColor(&v3->unk_08, 15, 0, 0, (v1 * 8), (4 * 8)); ov5_021DCC00(v3, 15, 0, 0); ov5_021DCC00(v3, 16, (8 * 4), 16); - v3->unk_AC.unk_04 = &v3->unk_08; + v3->unk_AC.window = &v3->unk_08; Window_CopyToVRAM(&v3->unk_08); v3->unk_04 = SysTask_Start(ov5_021DCC64, v3, 0); @@ -681,8 +675,8 @@ static void ov5_021DCC64(SysTask *param0, void *param1) v1 = (UnkStruct_ov5_021DC1A4 *)param1; if (*v1->unk_A0 == 0xffff) { - Window_Clear(v1->unk_AC.unk_04, 0); - Window_Remove(v1->unk_AC.unk_04); + Window_EraseStandardFrame(v1->unk_AC.window, 0); + Window_Remove(v1->unk_AC.window); for (v0 = 0; v0 < 28; v0++) { Strbuf_Free(v1->unk_1C[v0]); @@ -784,13 +778,13 @@ void ov5_021DCD94(UnkStruct_ov5_021DC1A4 *param0, u8 param1) v1++; } - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, (v0 * param1), v1 * 2, 13, ((1 + (10 * 4)) + (10 * 2))); - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_98, param0->unk_99, (v0 * param1), v1 * 2, 13, ((1 + (10 * 4)) + (10 * 2))); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); ov5_021DCE64(param0, param1, v1); - param0->unk_B8 = sub_02001B9C(¶m0->unk_AC, param0->unk_96, 4); + param0->unk_B8 = Menu_NewSimple(¶m0->unk_AC, param0->unk_96, 4); param0->unk_04 = SysTask_Start(ov5_021DC3B0, param0, 0); return; @@ -798,13 +792,13 @@ void ov5_021DCD94(UnkStruct_ov5_021DC1A4 *param0, u8 param1) static void ov5_021DCE64(UnkStruct_ov5_021DC1A4 *param0, u8 param1, u8 param2) { - param0->unk_AC.unk_00 = param0->unk_BC; - param0->unk_AC.unk_04 = ¶m0->unk_08; - param0->unk_AC.unk_08 = 0; - param0->unk_AC.unk_09 = param1; - param0->unk_AC.unk_0A = param2; - param0->unk_AC.unk_0B_0 = 0; - param0->unk_AC.unk_0B_4 = 0; + param0->unk_AC.choices = param0->unk_BC; + param0->unk_AC.window = ¶m0->unk_08; + param0->unk_AC.fontID = FONT_SYSTEM; + param0->unk_AC.xSize = param1; + param0->unk_AC.ySize = param2; + param0->unk_AC.lineSpacing = 0; + param0->unk_AC.suppressCursor = FALSE; return; } @@ -813,9 +807,9 @@ Window *ov5_021DCEB0(FieldSystem *fieldSystem, u8 param1, u8 param2) { Window *v0 = Window_New(4, 1); - Window_Add(fieldSystem->unk_08, v0, 3, param1, param2, 10, 4, 13, 1); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(v0, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(fieldSystem->bgConfig, v0, 3, param1, param2, 10, 4, 13, 1); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(v0, 1, 1024 - (18 + 12) - 9, 11); Window_FillTilemap(v0, 15); { @@ -837,7 +831,7 @@ Window *ov5_021DCEB0(FieldSystem *fieldSystem, u8 param1, u8 param2) void ov5_021DCF58(Window *param0) { - Window_Clear(param0, 0); + Window_EraseStandardFrame(param0, 0); Windows_Delete(param0, 1); } @@ -875,9 +869,9 @@ Window *ov5_021DD020(FieldSystem *fieldSystem, u8 param1, u8 param2) { Window *v0 = Window_New(4, 1); - Window_Add(fieldSystem->unk_08, v0, 3, param1, param2, 10, 2, 13, (1 + (10 * 4))); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(v0, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(fieldSystem->bgConfig, v0, 3, param1, param2, 10, 2, 13, (1 + (10 * 4))); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(v0, 1, 1024 - (18 + 12) - 9, 11); ov5_021DD098(fieldSystem, v0); @@ -886,7 +880,7 @@ Window *ov5_021DD020(FieldSystem *fieldSystem, u8 param1, u8 param2) void ov5_021DD084(Window *param0) { - Window_Clear(param0, 0); + Window_EraseStandardFrame(param0, 0); Windows_Delete(param0, 1); } @@ -924,9 +918,9 @@ Window *ov5_021DD140(FieldSystem *fieldSystem, u8 param1, u8 param2) { Window *v0 = Window_New(4, 1); - Window_Add(fieldSystem->unk_08, v0, 3, param1, param2, 10, 2, 13, (1 + (10 * 4))); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(v0, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(fieldSystem->bgConfig, v0, 3, param1, param2, 10, 2, 13, (1 + (10 * 4))); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(v0, 1, 1024 - (18 + 12) - 9, 11); ov5_021DD1A4(fieldSystem, v0); @@ -969,9 +963,9 @@ UnkStruct_ov5_021DC1A4 *ov5_021DD250(FieldSystem *fieldSystem, u8 param1, u8 par v0 = ov5_021DC150(fieldSystem, param1, param2, 0, 0, param3, param4, NULL, NULL); - Window_Add(v0->fieldSystem->unk_08, &v0->unk_08, 3, v0->unk_98, v0->unk_99, 10, 16, 13, ((1 + (10 * 4)) + (10 * 2))); - sub_0200DAA4(v0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(&v0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(v0->fieldSystem->bgConfig, &v0->unk_08, 3, v0->unk_98, v0->unk_99, 10, 16, 13, ((1 + (10 * 4)) + (10 * 2))); + LoadStandardWindowGraphics(v0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(&v0->unk_08, 1, 1024 - (18 + 12) - 9, 11); Window_FillRectWithColor(&v0->unk_08, 15, 0, 0, (10 * 8), (16 * 8)); ov5_021DCC00(v0, 273, 0, 0); @@ -990,7 +984,7 @@ UnkStruct_ov5_021DC1A4 *ov5_021DD250(FieldSystem *fieldSystem, u8 param1, u8 par StringTemplate_SetNumber(param4, 0, param8, 3, 1, 1); ov5_021DCC00(v0, 277, 0, (96 + 16)); - v0->unk_AC.unk_04 = &v0->unk_08; + v0->unk_AC.window = &v0->unk_08; Window_CopyToVRAM(&v0->unk_08); return v0; @@ -1000,8 +994,8 @@ void ov5_021DD3A8(UnkStruct_ov5_021DC1A4 *param0) { int v0; - Window_Clear(param0->unk_AC.unk_04, 0); - Window_Remove(param0->unk_AC.unk_04); + Window_EraseStandardFrame(param0->unk_AC.window, 0); + Window_Remove(param0->unk_AC.window); for (v0 = 0; v0 < 28; v0++) { Strbuf_Free(param0->unk_1C[v0]); diff --git a/src/overlay005/ov5_021DD42C.c b/src/overlay005/ov5_021DD42C.c index aa585ff0d7..d14b68e1f2 100644 --- a/src/overlay005/ov5_021DD42C.c +++ b/src/overlay005/ov5_021DD42C.c @@ -133,7 +133,7 @@ static void ov5_021DD5D0(FieldSystem *fieldSystem, StringTemplate *param1, UnkSt static void ov5_021DD610(FieldSystem *fieldSystem, UnkStruct_ov5_021DD648 *param1) { if (*(param1->unk_10) == 0) { - FieldMessage_AddWindow(fieldSystem->unk_08, param1->unk_0C, 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, param1->unk_0C, 3); FieldMessage_DrawWindow(param1->unk_0C, SaveData_Options(fieldSystem->saveData)); *(param1->unk_10) = 1; } diff --git a/src/overlay005/ov5_021DDAE4.c b/src/overlay005/ov5_021DDAE4.c index 4ba052f49a..1ebaf3c753 100644 --- a/src/overlay005/ov5_021DDAE4.c +++ b/src/overlay005/ov5_021DDAE4.c @@ -36,18 +36,18 @@ static BOOL ov5_021DDAE4(TaskManager *param0) break; case 1: if (sub_0200AC1C(2)) { - ov24_02253DA4(fieldSystem->unk_08); + ov24_02253DA4(fieldSystem->bgConfig); v1->unk_00++; } break; case 2: - if (ov24_02253DB4(fieldSystem->unk_08)) { + if (ov24_02253DB4(fieldSystem->bgConfig)) { PoketchData *poketchData = SaveData_PoketchData(fieldSystem->saveData); Overlay_UnloadByID(FS_OVERLAY_ID(overlay24)); Overlay_LoadByID(FS_OVERLAY_ID(overlay25), 2); PoketchData_Enable(poketchData); - PoketchSystem_Create(fieldSystem, &fieldSystem->unk_04->poketchSys, fieldSystem->saveData, fieldSystem->unk_08, sub_0200A914(1)); + PoketchSystem_Create(fieldSystem, &fieldSystem->unk_04->poketchSys, fieldSystem->saveData, fieldSystem->bgConfig, sub_0200A914(1)); v1->unk_00++; } break; diff --git a/src/overlay005/ov5_021DFB54.c b/src/overlay005/ov5_021DFB54.c index 48fdc6fe3f..aede4f8984 100644 --- a/src/overlay005/ov5_021DFB54.c +++ b/src/overlay005/ov5_021DFB54.c @@ -588,7 +588,7 @@ static void ov5_021E00B0(FieldSystem *fieldSystem, int param1, const UnkStruct_o v0->unk_24 = Player_MapObject(v0->playerAvatar); v0->unk_0C = *param2; - FieldTask_Start(fieldSystem->unk_10, ov5_021E0160, v0); + FieldTask_Start(fieldSystem->taskManager, ov5_021E0160, v0); } void ov5_021E00EC(TaskManager *taskMan, int param1, int param2) @@ -969,7 +969,7 @@ static void ov5_021E06F8(FieldSystem *fieldSystem, int param1, const UnkStruct_o v0->unk_14 = Player_MapObject(v0->playerAvatar); v0->unk_1C = *param2; - FieldTask_Start(fieldSystem->unk_10, ov5_021E07A0, v0); + FieldTask_Start(fieldSystem->taskManager, ov5_021E07A0, v0); } void ov5_021E0734(TaskManager *param0, int param1, int param2) @@ -1521,7 +1521,7 @@ static void ov5_021E0DE0(FieldSystem *fieldSystem) v0->unk_08 = Player_MapObject(v0->playerAvatar); v0->unk_10 = PlayerAvatar_Gender(v0->playerAvatar); - FieldTask_Start(fieldSystem->unk_10, ov5_021E0E10, v0); + FieldTask_Start(fieldSystem->taskManager, ov5_021E0E10, v0); } static BOOL ov5_021E0E10(TaskManager *param0) diff --git a/src/overlay005/ov5_021E1154.c b/src/overlay005/ov5_021E1154.c index bf93673073..9450eead0f 100644 --- a/src/overlay005/ov5_021E1154.c +++ b/src/overlay005/ov5_021E1154.c @@ -141,7 +141,7 @@ static BOOL ov5_021E120C(TaskManager *param0) MapObject_SetStatusFlagOff(v1, (1 << 8)); Player_SetDir(v0->playerAvatar, v0->unk_00); ov5_021E1350(v0); - sub_020057A4(1624, 0); + Sound_StopEffect(1624, 0); return 1; } } diff --git a/src/overlay005/ov5_021E135C.c b/src/overlay005/ov5_021E135C.c index 952f4824a4..e9dbea711b 100644 --- a/src/overlay005/ov5_021E135C.c +++ b/src/overlay005/ov5_021E135C.c @@ -67,8 +67,8 @@ static void ov5_021E139C(SysTask *param0, void *param1) v0->unk_0C++; if (v0->unk_0C == 20) { - sub_0200F174(2, 0, 0, 0x0, 6, 1, 4); - } else if ((v0->unk_0C > 20) && ScreenWipe_Done()) { + StartScreenTransition(2, 0, 0, 0x0, 6, 1, 4); + } else if ((v0->unk_0C > 20) && IsScreenTransitionDone()) { *v0->unk_04 = 1; Heap_FreeToHeap(v0); SysTask_Done(param0); @@ -109,7 +109,7 @@ static void ov5_021E1470(SysTask *param0, void *param1) v0->unk_0C++; if (v0->unk_0C == 2) { - sub_0200F174(1, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(1, 1, 1, 0x0, 6, 1, 4); } if (v0->unk_0C > 20) { @@ -117,7 +117,7 @@ static void ov5_021E1470(SysTask *param0, void *param1) } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { Player_SetDir(v0->fieldSystem->playerAvatar, 1); *v0->unk_04 = 1; Heap_FreeToHeap(v0); diff --git a/src/overlay005/ov5_021E1B08.c b/src/overlay005/ov5_021E1B08.c index 6dfc0d8cb2..77963dd3ec 100644 --- a/src/overlay005/ov5_021E1B08.c +++ b/src/overlay005/ov5_021E1B08.c @@ -106,10 +106,10 @@ void ov5_021E1BCC(FieldSystem *fieldSystem, u8 param1) static void ov5_021E1BE0(FieldSystem *fieldSystem) { - Bg_SetOffset(fieldSystem->unk_08, 3, 3, -48); + Bg_SetOffset(fieldSystem->bgConfig, 3, 3, -48); if (fieldSystem->unk_64->unk_13_7 == 0) { - sub_0205DA1C(fieldSystem->unk_08, &fieldSystem->unk_64->unk_00, fieldSystem->unk_64->unk_12, 3); + sub_0205DA1C(fieldSystem->bgConfig, &fieldSystem->unk_64->unk_00, fieldSystem->unk_64->unk_12, 3); fieldSystem->unk_64->unk_13_7 = 1; } @@ -123,46 +123,46 @@ static void ov5_021E1C1C(FieldSystem *fieldSystem) } Window_Remove(&fieldSystem->unk_64->unk_00); - Bg_FillTilemapRect(fieldSystem->unk_08, 3, 0, 0, 18, 32, 6, 16); - Bg_CopyTilemapBufferToVRAM(fieldSystem->unk_08, 3); - Bg_SetOffset(fieldSystem->unk_08, 3, 3, 0); + Bg_FillTilemapRect(fieldSystem->bgConfig, 3, 0, 0, 18, 32, 6, 16); + Bg_CopyTilemapBufferToVRAM(fieldSystem->bgConfig, 3); + Bg_SetOffset(fieldSystem->bgConfig, 3, 3, 0); fieldSystem->unk_64->unk_13_7 = 0; } static BOOL ov5_021E1C70(FieldSystem *fieldSystem) { - int v0 = Bg_GetYOffset(fieldSystem->unk_08, 3); + int v0 = Bg_GetYOffset(fieldSystem->bgConfig, 3); if (v0 == 0) { return 1; } if (!((v0 > -48) && (v0 < 0))) { - Bg_SetOffset(fieldSystem->unk_08, 3, 3, -48); + Bg_SetOffset(fieldSystem->bgConfig, 3, 3, -48); } - Bg_SetOffset(fieldSystem->unk_08, 3, 4, 16); + Bg_SetOffset(fieldSystem->bgConfig, 3, 4, 16); return 0; } static BOOL ov5_021E1CB0(FieldSystem *fieldSystem) { - int v0 = Bg_GetYOffset(fieldSystem->unk_08, 3); + int v0 = Bg_GetYOffset(fieldSystem->bgConfig, 3); if (v0 == -48) { - Bg_FillTilemapRect(fieldSystem->unk_08, 3, 0, 0, 18, 32, 6, 16); - Bg_CopyTilemapBufferToVRAM(fieldSystem->unk_08, 3); - Bg_SetOffset(fieldSystem->unk_08, 3, 3, 0); + Bg_FillTilemapRect(fieldSystem->bgConfig, 3, 0, 0, 18, 32, 6, 16); + Bg_CopyTilemapBufferToVRAM(fieldSystem->bgConfig, 3); + Bg_SetOffset(fieldSystem->bgConfig, 3, 3, 0); return 1; } if (!((v0 > -48) && (v0 < 0))) { - Bg_SetOffset(fieldSystem->unk_08, 3, 3, 0); + Bg_SetOffset(fieldSystem->bgConfig, 3, 3, 0); } - Bg_SetOffset(fieldSystem->unk_08, 3, 5, 16); + Bg_SetOffset(fieldSystem->bgConfig, 3, 5, 16); return 0; } diff --git a/src/overlay005/ov5_021E1D20.c b/src/overlay005/ov5_021E1D20.c deleted file mode 100644 index 2ec78da2f5..0000000000 --- a/src/overlay005/ov5_021E1D20.c +++ /dev/null @@ -1,255 +0,0 @@ -#include "overlay005/ov5_021E1D20.h" - -#include -#include - -#include "struct_decls/pokedexdata_decl.h" -#include "struct_defs/struct_02049FA8.h" - -#include "field/field_system.h" -#include "overlay005/ov5_021EA714.h" -#include "overlay005/struct_ov5_021E1FF4_decl.h" - -#include "bg_window.h" -#include "field_overworld_state.h" -#include "font.h" -#include "heap.h" -#include "map_header.h" -#include "message.h" -#include "message_util.h" -#include "play_time.h" -#include "player_avatar.h" -#include "save_player.h" -#include "savedata.h" -#include "strbuf.h" -#include "string_template.h" -#include "text.h" -#include "trainer_info.h" -#include "unk_0200DA60.h" -#include "unk_0202631C.h" -#include "unk_020366A0.h" - -typedef struct { - int unk_00; - int unk_04; - TrainerInfo *unk_08; - PlayTime *playTime; -} UnkStruct_ov5_021E1D20; - -struct UnkStruct_ov5_021E1FF4_t { - FieldSystem *fieldSystem; - int unk_04; - u8 unk_08; - BgConfig *unk_0C; - Window *unk_10; - StringTemplate *unk_14; - MessageLoader *unk_18; - UnkStruct_ov5_021E1D20 unk_1C; - int unk_2C; - int unk_30; -}; - -static void ov5_021E2028(FieldSystem *fieldSystem); - -static const int Unk_ov5_021F9CCC[] = { - 0x0, - 0x1, - 0x2, - 0x3, - 0x4 -}; - -static const int Unk_ov5_021F9CBC[] = { - 0x5, - 0x6, - 0x7, - 0x8 -}; - -static void ov5_021E1D20(UnkStruct_ov5_021E1D20 *param0, const FieldSystem *fieldSystem) -{ - SaveData *v0 = fieldSystem->saveData; - Location *location = sub_0203A720(SaveData_GetFieldOverworldState(v0)); - PokedexData *v2 = SaveData_Pokedex(v0); - - param0->unk_04 = MapHeader_GetMapLabelTextID(location->mapId); - - if (sub_02027520(v2)) { - param0->unk_00 = sub_02026E48(v2); - } else { - param0->unk_00 = 0; - } - - param0->unk_08 = SaveData_GetTrainerInfo(v0); - param0->playTime = SaveData_GetPlayTime(v0); -} - -static void ov5_021E1D6C(StringTemplate *strTemplate, const UnkStruct_ov5_021E1D20 *param1) -{ - int v0, v1, v2; - - StringTemplate_SetLocationName(strTemplate, 0, param1->unk_04); - StringTemplate_SetPlayerName(strTemplate, 1, param1->unk_08); - StringTemplate_SetNumber(strTemplate, 2, TrainerInfo_BadgeCount(param1->unk_08), 1, 0, 1); - - if (param1->unk_00 >= 100) { - v0 = 3; - v1 = 0; - } else if (param1->unk_00 >= 10) { - v0 = 3; - v1 = 1; - } else { - v0 = 3 - 1; - v1 = 1; - } - - StringTemplate_SetNumber(strTemplate, 3, param1->unk_00, v0, v1, 1); - v2 = PlayTime_GetHours(param1->playTime); - - if (v2 >= 100) { - v0 = 3; - v1 = 0; - } else if (v2 >= 10) { - v0 = 3; - v1 = 1; - } else { - v0 = 3 - 1; - v1 = 1; - } - - StringTemplate_SetNumber(strTemplate, 4, v2, v0, v1, 1); - StringTemplate_SetNumber(strTemplate, 5, PlayTime_GetMinutes(param1->playTime), 2, 2, 1); -} - -static int ov5_021E1E10(const UnkStruct_ov5_021E1D20 *param0) -{ - if (param0->unk_00 != 0) { - return 10; - } else { - return 10 - 2; - } -} - -static void ov5_021E1E20(const UnkStruct_ov5_021E1FF4 *param0) -{ - Strbuf *v0; - int v1, v2; - int v3; - int v4; - - v3 = Font_GetAttribute(FONT_SYSTEM, FONTATTR_MAX_LETTER_HEIGHT) + Font_GetAttribute(FONT_SYSTEM, FONTATTR_LINE_SPACING); - v2 = 0; - v0 = MessageUtil_ExpandedStrbuf(param0->unk_14, param0->unk_18, Unk_ov5_021F9CCC[0], param0->unk_04); - - Text_AddPrinterWithParams(param0->unk_10, FONT_SYSTEM, v0, 0, v2, TEXT_SPEED_NO_TRANSFER, NULL); - Strbuf_Free(v0); - - for (v4 = 1; v4 < NELEMS(Unk_ov5_021F9CCC); v4++) { - if ((Unk_ov5_021F9CCC[v4] == 3) && (param0->unk_1C.unk_00 == 0)) { - continue; - } - - v2 += v3; - v0 = MessageLoader_GetNewStrbuf(param0->unk_18, Unk_ov5_021F9CCC[v4]); - - Text_AddPrinterWithParams(param0->unk_10, FONT_SYSTEM, v0, 0, v2, TEXT_SPEED_NO_TRANSFER, NULL); - Strbuf_Free(v0); - - v0 = MessageUtil_ExpandedStrbuf(param0->unk_14, param0->unk_18, Unk_ov5_021F9CBC[v4 - 1], param0->unk_04); - v1 = 13 * 8 - Font_CalcStrbufWidth(FONT_SYSTEM, v0, Font_GetAttribute(FONT_SYSTEM, FONTATTR_LETTER_SPACING)); - - Text_AddPrinterWithParams(param0->unk_10, FONT_SYSTEM, v0, v1, v2, TEXT_SPEED_NO_TRANSFER, NULL); - Strbuf_Free(v0); - } -} - -void ov5_021E1F04(UnkStruct_ov5_021E1FF4 *param0) -{ - param0->unk_10 = Heap_AllocFromHeap(param0->unk_04, sizeof(Window)); - - Window_Add(param0->unk_0C, param0->unk_10, param0->unk_08, 1, 1, param0->unk_2C, param0->unk_30, 13, 393); - sub_0200DAA4(param0->unk_0C, param0->unk_08, 985, 11, 0, param0->unk_04); - Window_FillTilemap(param0->unk_10, Font_GetAttribute(FONT_SYSTEM, FONTATTR_BG_COLOR)); - - ov5_021E1E20(param0); - Window_Show(param0->unk_10, 0, 985, 11); -} - -void ov5_021E1F7C(UnkStruct_ov5_021E1FF4 *param0) -{ - Window_Clear(param0->unk_10, 0); - Window_Remove(param0->unk_10); - Heap_FreeToHeap(param0->unk_10); -} - -UnkStruct_ov5_021E1FF4 *ov5_021E1F98(FieldSystem *fieldSystem, int param1, u8 param2) -{ - UnkStruct_ov5_021E1FF4 *v0; - - v0 = Heap_AllocFromHeap(param1, sizeof(UnkStruct_ov5_021E1FF4)); - - v0->fieldSystem = fieldSystem; - v0->unk_04 = param1; - v0->unk_08 = param2; - v0->unk_0C = fieldSystem->unk_08; - v0->unk_14 = StringTemplate_Default(param1); - v0->unk_18 = MessageLoader_Init(1, 26, 534, param1); - - ov5_021E1D20(&v0->unk_1C, v0->fieldSystem); - ov5_021E1D6C(v0->unk_14, &v0->unk_1C); - - v0->unk_2C = 13; - v0->unk_30 = ov5_021E1E10(&v0->unk_1C); - - return v0; -} - -void ov5_021E1FF4(UnkStruct_ov5_021E1FF4 *param0) -{ - MessageLoader_Free(param0->unk_18); - StringTemplate_Free(param0->unk_14); - Heap_FreeToHeap(param0); -} - -BOOL ov5_021E200C(FieldSystem *fieldSystem) -{ - ov5_021E2028(fieldSystem); - - if (SaveData_Save(fieldSystem->saveData) == 2) { - return 1; - } else { - return 0; - } -} - -static void ov5_021E2028(FieldSystem *fieldSystem) -{ - FieldSystem_SaveObjects(fieldSystem); - ov5_021EA714(fieldSystem, 4, 0); - - fieldSystem->location->x = Player_GetXPos(fieldSystem->playerAvatar); - fieldSystem->location->z = Player_GetZPos(fieldSystem->playerAvatar); - fieldSystem->location->unk_04 = -1; - fieldSystem->location->unk_10 = PlayerAvatar_GetDir(fieldSystem->playerAvatar); -} - -void ov5_021E2064(FieldSystem *fieldSystem) -{ - if (fieldSystem == NULL) { - GF_ASSERT(0); - return; - } - - switch (fieldSystem->location->mapId) { - case 466: - case 332: - case 333: - return; - } - - if (sub_02038EB4() == 1) { - return; - } - - ov5_021E2028(fieldSystem); -} diff --git a/src/overlay005/ov5_021E622C.c b/src/overlay005/ov5_021E622C.c index bad686e994..6de5650d51 100644 --- a/src/overlay005/ov5_021E622C.c +++ b/src/overlay005/ov5_021E622C.c @@ -3,6 +3,7 @@ #include #include +#include "constants/items.h" #include "constants/species.h" #include "consts/game_records.h" @@ -2111,12 +2112,12 @@ static int ov5_021E6444(Party *param0, UnkStruct_02026218 *param1, StringTemplat if (Pokemon_GetValue(v0, MON_DATA_LEVEL, NULL) != 100) { v3 = Pokemon_GetValue(v0, MON_DATA_EXP, NULL); v3 += sub_02026228(param1); - Pokemon_SetValue(v0, 8, (u8 *)&v3); + Pokemon_SetValue(v0, MON_DATA_EXP, (u8 *)&v3); ov5_021E63E0(v0); } if (ov5_021E62B0(v1)) { - Pokemon_SetValue(v0, 170, sub_02026230(v2)); + Pokemon_SetValue(v0, MON_DATA_170, sub_02026230(v2)); } Party_AddPokemon(param0, v0); @@ -2150,7 +2151,7 @@ int ov5_021E6520(BoxPokemon *param0, u32 param1) v3 = BoxPokemon_GetValue(v1, MON_DATA_EXP, NULL); v3 += param1; - BoxPokemon_SetValue(v1, 8, (u8 *)&v3); + BoxPokemon_SetValue(v1, MON_DATA_EXP, (u8 *)&v3); v2 = BoxPokemon_GetLevel(v1); Heap_FreeToHeap(v0); @@ -2250,7 +2251,7 @@ static int ov5_021E6684(UnkStruct_02026310 *param0) } for (v3 = 0, v0 = 0; v0 < 2; v0++) { - if ((v1[v0] = BoxPokemon_GetValue(v4[v0], MON_DATA_SPECIES, NULL)) == 132) { + if ((v1[v0] = BoxPokemon_GetValue(v4[v0], MON_DATA_SPECIES, NULL)) == SPECIES_DITTO) { v3++; v2 = v0; } @@ -2264,7 +2265,7 @@ static int ov5_021E6684(UnkStruct_02026310 *param0) } } - if (BoxPokemon_GetValue(v4[v2], MON_DATA_HELD_ITEM, NULL) == 229) { + if (BoxPokemon_GetValue(v4[v2], MON_DATA_HELD_ITEM, NULL) == ITEM_EVERSTONE) { if (LCRNG_Next() >= (0xffff / 2)) { return -1; } @@ -2348,27 +2349,27 @@ static void ov5_021E67B0(Pokemon *param0, UnkStruct_02026310 *param1) switch (v0[v1]) { case 0: v4 = BoxPokemon_GetValue(v5, MON_DATA_HP_IV, NULL); - Pokemon_SetValue(param0, 70, (u8 *)&v4); + Pokemon_SetValue(param0, MON_DATA_HP_IV, (u8 *)&v4); break; case 1: v4 = BoxPokemon_GetValue(v5, MON_DATA_ATK_IV, NULL); - Pokemon_SetValue(param0, 71, (u8 *)&v4); + Pokemon_SetValue(param0, MON_DATA_ATK_IV, (u8 *)&v4); break; case 2: v4 = BoxPokemon_GetValue(v5, MON_DATA_DEF_IV, NULL); - Pokemon_SetValue(param0, 72, (u8 *)&v4); + Pokemon_SetValue(param0, MON_DATA_DEF_IV, (u8 *)&v4); break; case 3: v4 = BoxPokemon_GetValue(v5, MON_DATA_SPEED_IV, NULL); - Pokemon_SetValue(param0, 73, (u8 *)&v4); + Pokemon_SetValue(param0, MON_DATA_SPEED_IV, (u8 *)&v4); break; case 4: v4 = BoxPokemon_GetValue(v5, MON_DATA_SPATK_IV, NULL); - Pokemon_SetValue(param0, 74, (u8 *)&v4); + Pokemon_SetValue(param0, MON_DATA_SPATK_IV, (u8 *)&v4); break; case 5: v4 = BoxPokemon_GetValue(v5, MON_DATA_SPDEF_IV, NULL); - Pokemon_SetValue(param0, 75, (u8 *)&v4); + Pokemon_SetValue(param0, MON_DATA_SPDEF_IV, (u8 *)&v4); break; } } @@ -2414,9 +2415,9 @@ static void ov5_021E6948(Pokemon *param0, BoxPokemon *param1, BoxPokemon *param2 v6 = Pokemon_GetValue(param0, MON_DATA_FORM, NULL); v4 = Pokemon_LoadLevelUpMoveIdsOf(v3, v6, v7->unk_30); - for (v0 = 0; v0 < 4; v0++) { - v7->unk_00[v0] = BoxPokemon_GetValue(param1, 54 + v0, NULL); - v7->unk_20[v0] = BoxPokemon_GetValue(param2, 54 + v0, NULL); + for (v0 = 0; v0 < LEARNED_MOVES_MAX; v0++) { + v7->unk_00[v0] = BoxPokemon_GetValue(param1, MON_DATA_MOVE1 + v0, NULL); + v7->unk_20[v0] = BoxPokemon_GetValue(param2, MON_DATA_MOVE1 + v0, NULL); } v5 = ov5_021E68D8(param0, v7->unk_94); @@ -2600,27 +2601,27 @@ void ov5_021E6CF0(Pokemon *param0, u16 param1, u8 param2, TrainerInfo *param3, i { u8 v0, v1, v2; u16 v3; - u8 v4 = PokemonPersonalData_GetSpeciesValue(param1, 19); + u8 v4 = PokemonPersonalData_GetSpeciesValue(param1, MON_DATA_PERSONAL_HATCH_CYCLE); Strbuf *v5; - Pokemon_InitWith(param0, param1, 1, 32, 0, 0, 0, 0); + Pokemon_InitWith(param0, param1, 1, 32, FALSE, 0, OTID_NOT_SET, 0); v0 = 0; - v3 = 4; + v3 = ITEM_POKE_BALL; - Pokemon_SetValue(param0, 155, &v3); - Pokemon_SetValue(param0, 9, &v4); - Pokemon_SetValue(param0, 156, &v0); + Pokemon_SetValue(param0, MON_DATA_POKEBALL, &v3); + Pokemon_SetValue(param0, MON_DATA_FRIENDSHIP, &v4); + Pokemon_SetValue(param0, MON_DATA_MET_LEVEL, &v0); if (param2) { - Pokemon_SetValue(param0, 152, ¶m2); + Pokemon_SetValue(param0, MON_DATA_MET_LOCATION, ¶m2); } v2 = 1; - Pokemon_SetValue(param0, 76, &v2); + Pokemon_SetValue(param0, MON_DATA_IS_EGG, &v2); v5 = MessageUtil_SpeciesName(SPECIES_EGG, 4); - Pokemon_SetValue(param0, 119, v5); + Pokemon_SetValue(param0, MON_DATA_NICKNAME_STRBUF, v5); Strbuf_Free(v5); if (param4 == 4) { @@ -2628,9 +2629,9 @@ void ov5_021E6CF0(Pokemon *param0, u16 param1, u8 param2, TrainerInfo *param3, i u32 v7 = TrainerInfo_Gender(param3); Strbuf *v8 = TrainerInfo_NameNewStrbuf(param3, 32); - Pokemon_SetValue(param0, 145, v8); - Pokemon_SetValue(param0, 7, &v6); - Pokemon_SetValue(param0, 157, &v7); + Pokemon_SetValue(param0, MON_DATA_OTNAME_STRBUF, v8); + Pokemon_SetValue(param0, MON_DATA_OT_ID, &v6); + Pokemon_SetValue(param0, MON_DATA_OT_GENDER, &v7); Strbuf_Free(v8); } @@ -2643,7 +2644,7 @@ void ov5_021E6DE8(Pokemon *param0, u16 param1, UnkStruct_02026310 *param2, u32 p u16 v1; u32 v2; Strbuf *v3; - u8 v4 = PokemonPersonalData_GetSpeciesValue(param1, 19); + u8 v4 = PokemonPersonalData_GetSpeciesValue(param1, MON_DATA_PERSONAL_HATCH_CYCLE); v2 = sub_02026248(param2); @@ -2663,19 +2664,19 @@ void ov5_021E6DE8(Pokemon *param0, u16 param1, UnkStruct_02026310 *param2, u32 p } } - Pokemon_InitWith(param0, param1, 1, 32, 1, v2, 0, 0); + Pokemon_InitWith(param0, param1, 1, 32, TRUE, v2, OTID_NOT_SET, 0); v0 = 0; - v1 = 4; + v1 = ITEM_POKE_BALL; - Pokemon_SetValue(param0, 155, &v1); - Pokemon_SetValue(param0, 9, &v4); - Pokemon_SetValue(param0, 156, &v0); - Pokemon_SetValue(param0, 112, ¶m4); + Pokemon_SetValue(param0, MON_DATA_POKEBALL, &v1); + Pokemon_SetValue(param0, MON_DATA_FRIENDSHIP, &v4); + Pokemon_SetValue(param0, MON_DATA_MET_LEVEL, &v0); + Pokemon_SetValue(param0, MON_DATA_FORM, ¶m4); v3 = MessageUtil_SpeciesName(SPECIES_EGG, 4); - Pokemon_SetValue(param0, 119, v3); + Pokemon_SetValue(param0, MON_DATA_NICKNAME_STRBUF, v3); Strbuf_Free(v3); } @@ -2706,7 +2707,7 @@ void ov5_021E6EA8(UnkStruct_02026310 *param0, Party *param1, TrainerInfo *param2 } v2 = 1; - Pokemon_SetValue(v3, 76, &v2); + Pokemon_SetValue(v3, MON_DATA_IS_EGG, &v2); Party_AddPokemon(param1, v3); ov5_021E6B40(param0); @@ -2903,7 +2904,7 @@ BOOL ov5_021E7154(UnkStruct_02026310 *param0, Party *param1, FieldSystem *fieldS v1--; } - Pokemon_SetValue(v9, 9, (u8 *)&v1); + Pokemon_SetValue(v9, MON_DATA_FRIENDSHIP, (u8 *)&v1); } else { return 1; } @@ -2968,7 +2969,7 @@ void ov5_021E7308(UnkStruct_02026310 *param0, u32 param1, u32 param2, u32 param3 if (v3 != 2) { v4 = BoxPokemon_GetValue(v1, MON_DATA_SPECIES, NULL); - if (((v4 == 29) || (v4 == 32)) && (BoxPokemon_GetValue(v1, MON_DATA_HAS_NICKNAME, NULL) == 0)) { + if (((v4 == SPECIES_NIDORAN_F) || (v4 == SPECIES_NIDORAN_M)) && (BoxPokemon_GetValue(v1, MON_DATA_HAS_NICKNAME, NULL) == 0)) { v3 = 2; } } @@ -3038,7 +3039,7 @@ static void ov5_021E742C(Pokemon *param0, int param1) v0 = Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL); - for (v7 = 0; v7 < 4; v7++) { + for (v7 = 0; v7 < LEARNED_MOVES_MAX; v7++) { v1[v7] = Pokemon_GetValue(param0, MON_DATA_MOVE1 + v7, NULL); v2[v7] = Pokemon_GetValue(param0, MON_DATA_MOVE1_CUR_PP + v7, NULL); } @@ -3061,7 +3062,7 @@ static void ov5_021E742C(Pokemon *param0, int param1) v4 = Pokemon_GetValue(param0, MON_DATA_OT_ID, NULL); v13 = Pokemon_GetValue(param0, MON_DATA_FORM, NULL); - if (v0 == 490) { + if (v0 == SPECIES_MANAPHY) { int v17 = Pokemon_GetValue(param0, MON_DATA_MET_LOCATION, NULL); if (v17 == sub_02017070(2, 1)) { @@ -3071,30 +3072,30 @@ static void ov5_021E742C(Pokemon *param0, int param1) } } - Pokemon_InitWith(v16, v0, 1, 32, 1, v3, 0, 0); + Pokemon_InitWith(v16, v0, 1, 32, TRUE, v3, OTID_NOT_SET, 0); - for (v7 = 0; v7 < 4; v7++) { - Pokemon_SetValue(v16, 54 + v7, &(v1[v7])); - Pokemon_SetValue(v16, 58 + v7, &(v2[v7])); + for (v7 = 0; v7 < LEARNED_MOVES_MAX; v7++) { + Pokemon_SetValue(v16, MON_DATA_MOVE1 + v7, &(v1[v7])); + Pokemon_SetValue(v16, MON_DATA_MOVE1_CUR_PP + v7, &(v2[v7])); } for (v7 = 0; v7 < 6; v7++) { - Pokemon_SetValue(v16, 70 + v7, &(v5[v7])); + Pokemon_SetValue(v16, MON_DATA_HP_IV + v7, &(v5[v7])); } - Pokemon_SetValue(v16, 12, &v8); - Pokemon_SetValue(v16, 122, &v9); - Pokemon_SetValue(v16, 11, &v10); + Pokemon_SetValue(v16, MON_DATA_LANGUAGE, &v8); + Pokemon_SetValue(v16, MON_DATA_MET_GAME, &v9); + Pokemon_SetValue(v16, MON_DATA_MARKS, &v10); v11 = 120; - Pokemon_SetValue(v16, 9, &v11); - Pokemon_SetValue(v16, 154, &v6); - Pokemon_SetValue(v16, 110, &v12); - Pokemon_SetValue(v16, 145, v15); - Pokemon_SetValue(v16, 157, &v14); - Pokemon_SetValue(v16, 7, &v4); - Pokemon_SetValue(v16, 112, &v13); + Pokemon_SetValue(v16, MON_DATA_FRIENDSHIP, &v11); + Pokemon_SetValue(v16, MON_DATA_POKERUS, &v6); + Pokemon_SetValue(v16, MON_DATA_FATEFUL_ENCOUNTER, &v12); + Pokemon_SetValue(v16, MON_DATA_OTNAME_STRBUF, v15); + Pokemon_SetValue(v16, MON_DATA_OT_GENDER, &v14); + Pokemon_SetValue(v16, MON_DATA_OT_ID, &v4); + Pokemon_SetValue(v16, MON_DATA_FORM, &v13); { u16 v18; @@ -3105,20 +3106,20 @@ static void ov5_021E742C(Pokemon *param0, int param1) v20 = Pokemon_GetValue(param0, MON_DATA_MET_MONTH, NULL); v21 = Pokemon_GetValue(param0, MON_DATA_MET_DAY, NULL); - Pokemon_SetValue(v16, 152, &v18); - Pokemon_SetValue(v16, 146, &v19); - Pokemon_SetValue(v16, 147, &v20); - Pokemon_SetValue(v16, 148, &v21); + Pokemon_SetValue(v16, MON_DATA_MET_LOCATION, &v18); + Pokemon_SetValue(v16, MON_DATA_MET_YEAR, &v19); + Pokemon_SetValue(v16, MON_DATA_MET_MONTH, &v20); + Pokemon_SetValue(v16, MON_DATA_MET_DAY, &v21); v18 = Pokemon_GetValue(param0, MON_DATA_HATCH_LOCATION, NULL); v19 = Pokemon_GetValue(param0, MON_DATA_HATCH_YEAR, NULL); v20 = Pokemon_GetValue(param0, MON_DATA_HATCH_MONTH, NULL); v21 = Pokemon_GetValue(param0, MON_DATA_HATCH_DAY, NULL); - Pokemon_SetValue(v16, 153, &v18); - Pokemon_SetValue(v16, 149, &v19); - Pokemon_SetValue(v16, 150, &v20); - Pokemon_SetValue(v16, 151, &v21); + Pokemon_SetValue(v16, MON_DATA_HATCH_LOCATION, &v18); + Pokemon_SetValue(v16, MON_DATA_HATCH_YEAR, &v19); + Pokemon_SetValue(v16, MON_DATA_HATCH_MONTH, &v20); + Pokemon_SetValue(v16, MON_DATA_HATCH_DAY, &v21); } Pokemon_Copy(v16, param0); @@ -3139,15 +3140,15 @@ void ov5_021E771C(Pokemon *param0, int param1) v3 = 0; ov5_021E742C(param0, param1); - Pokemon_SetValue(param0, 76, &v0); + Pokemon_SetValue(param0, MON_DATA_IS_EGG, &v0); v4 = Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL); MessageLoader_GetSpeciesName(v4, 0, v5); - Pokemon_SetValue(param0, 117, v5); - Pokemon_SetValue(param0, 77, &v1); - Pokemon_SetValue(param0, 155, &v2); - Pokemon_SetValue(param0, 156, &v3); + Pokemon_SetValue(param0, MON_DATA_NICKNAME, v5); + Pokemon_SetValue(param0, MON_DATA_HAS_NICKNAME, &v1); + Pokemon_SetValue(param0, MON_DATA_POKEBALL, &v2); + Pokemon_SetValue(param0, MON_DATA_MET_LEVEL, &v3); Pokemon_CalcLevelAndStats(param0); } diff --git a/src/overlay005/ov5_021EA714.c b/src/overlay005/ov5_021EA714.c index 37d19c482d..1c393a6d3e 100644 --- a/src/overlay005/ov5_021EA714.c +++ b/src/overlay005/ov5_021EA714.c @@ -6,7 +6,6 @@ #include "field/field_system.h" #include "field/field_system_sub2_t.h" #include "overlay024/ov24_02253CE0.h" -#include "overlay025/poketch_system.h" #include "game_overlay.h" #include "poketch_data.h" @@ -17,10 +16,10 @@ FS_EXTERN_OVERLAY(overlay24); FS_EXTERN_OVERLAY(overlay25); -void ov5_021EA714(FieldSystem *fieldSystem, int param1, u32 param2) +void ov5_021EA714(FieldSystem *fieldSystem, enum PoketchEventID eventID, u32 dummy) { - if ((fieldSystem->unk_04 != NULL) && (fieldSystem->unk_04->poketchSys != NULL)) { - PoketchSystem_SendEvent(fieldSystem->unk_04->poketchSys, param1, param2); + if (fieldSystem->unk_04 != NULL && fieldSystem->unk_04->poketchSys != NULL) { + PoketchSystem_SendEvent(fieldSystem->unk_04->poketchSys, eventID, dummy); } } @@ -32,10 +31,10 @@ void ov5_021EA728(FieldSystem *fieldSystem) if (PoketchData_IsEnabled(poketchData) && (sub_0206AE2C(v1) == 0)) { Overlay_LoadByID(FS_OVERLAY_ID(overlay25), 2); - PoketchSystem_Create(fieldSystem, &fieldSystem->unk_04->poketchSys, fieldSystem->saveData, fieldSystem->unk_08, sub_0200A914(1)); + PoketchSystem_Create(fieldSystem, &fieldSystem->unk_04->poketchSys, fieldSystem->saveData, fieldSystem->bgConfig, sub_0200A914(1)); } else { Overlay_LoadByID(FS_OVERLAY_ID(overlay24), 2); - ov24_02253CE0(fieldSystem->unk_08); + ov24_02253CE0(fieldSystem->bgConfig); } } @@ -48,7 +47,7 @@ void ov5_021EA790(FieldSystem *fieldSystem) && (sub_0206AE2C(v1) == 0)) { PoketchSystem_StartShutdown(fieldSystem->unk_04->poketchSys); } else { - ov24_02253DA4(fieldSystem->unk_08); + ov24_02253DA4(fieldSystem->bgConfig); } } @@ -65,7 +64,7 @@ u8 ov5_021EA7CC(FieldSystem *fieldSystem) return 1; } } else { - if (ov24_02253DB4(fieldSystem->unk_08)) { + if (ov24_02253DB4(fieldSystem->bgConfig)) { Overlay_UnloadByID(FS_OVERLAY_ID(overlay24)); return 1; } @@ -77,17 +76,17 @@ u8 ov5_021EA7CC(FieldSystem *fieldSystem) void ov5_021EA830(FieldSystem *fieldSystem) { Overlay_LoadByID(FS_OVERLAY_ID(overlay24), 2); - ov24_02253CE0(fieldSystem->unk_08); + ov24_02253CE0(fieldSystem->bgConfig); } void ov5_021EA848(FieldSystem *fieldSystem) { - ov24_02253DA4(fieldSystem->unk_08); + ov24_02253DA4(fieldSystem->bgConfig); } BOOL ov5_021EA854(FieldSystem *fieldSystem) { - if (ov24_02253DB4(fieldSystem->unk_08)) { + if (ov24_02253DB4(fieldSystem->bgConfig)) { Overlay_UnloadByID(FS_OVERLAY_ID(overlay24)); return 1; } diff --git a/src/overlay005/ov5_021EA874.c b/src/overlay005/ov5_021EA874.c index f9573259df..46dbcd4fb5 100644 --- a/src/overlay005/ov5_021EA874.c +++ b/src/overlay005/ov5_021EA874.c @@ -3,15 +3,10 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202B370_decl.h" #include "struct_decls/struct_020508D4_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "field/field_system.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" @@ -20,18 +15,18 @@ #include "field_system.h" #include "game_options.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0202ACE0.h" #include "unk_0203061C.h" #include "unk_0203909C.h" @@ -39,8 +34,8 @@ #include "unk_0205D8CC.h" typedef struct { - ResourceMetadata *unk_00; - BmpList *unk_04; + StringList *unk_00; + ListMenu *unk_04; Strbuf *unk_08; Strbuf *unk_0C; Window unk_10; @@ -50,7 +45,7 @@ typedef struct { StringTemplate *unk_38; MessageLoader *unk_3C; int unk_40; - UIControlData *unk_44; + Menu *unk_44; int unk_48; int unk_4C[8]; int unk_6C[8]; @@ -60,7 +55,7 @@ typedef struct { static void ov5_021EAE78(UnkStruct_ov5_021EAE78 *param0, int param1); static void ov5_021EAF1C(UnkStruct_ov5_021EAE78 *param0); -static void ov5_021EAF90(BmpList *param0, u32 param1, u8 param2); +static void ov5_021EAF90(ListMenu *param0, u32 param1, u8 param2); static BOOL ov5_021EA874(UnkStruct_ov5_021EAE78 *param0) { @@ -74,8 +69,8 @@ static BOOL ov5_021EA874(UnkStruct_ov5_021EAE78 *param0) param0->unk_8C = 0; - sub_0200DD0C(param0->fieldSystem->unk_08, 3, (512 - (18 + 12)), 10, Options_Frame(SaveData_Options(param0->unk_34)), 4); - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + LoadMessageBoxGraphics(param0->fieldSystem->bgConfig, 3, (512 - (18 + 12)), 10, Options_Frame(SaveData_Options(param0->unk_34)), 4); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); param0->unk_48 = 1; return 0; @@ -135,7 +130,7 @@ static const WindowTemplate Unk_ov5_021FAF00 = { static BOOL ov5_021EA9BC(UnkStruct_ov5_021EAE78 *param0) { if (Text_IsPrinterActive(param0->unk_40) == 0) { - param0->unk_44 = sub_02002100(param0->fieldSystem->unk_08, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); + param0->unk_44 = Menu_MakeYesNoChoice(param0->fieldSystem->bgConfig, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); param0->unk_48 = 3; } @@ -147,7 +142,7 @@ static BOOL ov5_021EA9F8(UnkStruct_ov5_021EAE78 *param0) DWCFriendData *v0; Strbuf *v1; int v2; - int v3 = sub_02002114(param0->unk_44, 4); + int v3 = Menu_ProcessInputAndHandleExit(param0->unk_44, 4); if (v3 == 0xffffffff) { return 0; @@ -175,7 +170,7 @@ static BOOL ov5_021EA9F8(UnkStruct_ov5_021EAE78 *param0) static BOOL ov5_021EAA6C(UnkStruct_ov5_021EAE78 *param0) { if (Text_IsPrinterActive(param0->unk_40) == 0) { - param0->unk_44 = sub_02002100(param0->fieldSystem->unk_08, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); + param0->unk_44 = Menu_MakeYesNoChoice(param0->fieldSystem->bgConfig, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); param0->unk_48 = 5; } @@ -188,7 +183,7 @@ static BOOL ov5_021EAAA8(UnkStruct_ov5_021EAE78 *param0) DWCFriendData *v1; Strbuf *v2; int v3; - int v4 = sub_02002114(param0->unk_44, 4); + int v4 = Menu_ProcessInputAndHandleExit(param0->unk_44, 4); if (v4 == 0xffffffff) { return 0; @@ -207,7 +202,7 @@ static BOOL ov5_021EAAA8(UnkStruct_ov5_021EAE78 *param0) static BOOL ov5_021EAAEC(UnkStruct_ov5_021EAE78 *param0) { if (Text_IsPrinterActive(param0->unk_40) == 0) { - param0->unk_44 = sub_02002100(param0->fieldSystem->unk_08, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); + param0->unk_44 = Menu_MakeYesNoChoice(param0->fieldSystem->bgConfig, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); param0->unk_48 = 7; } @@ -220,7 +215,7 @@ static BOOL ov5_021EAB28(UnkStruct_ov5_021EAE78 *param0) DWCFriendData *v1; Strbuf *v2; int v3; - int v4 = sub_02002114(param0->unk_44, 4); + int v4 = Menu_ProcessInputAndHandleExit(param0->unk_44, 4); if (v4 == 0xffffffff) { return 0; @@ -234,7 +229,7 @@ static BOOL ov5_021EAB28(UnkStruct_ov5_021EAE78 *param0) return 0; } -static const UnkStruct_ov84_02240FA8 Unk_ov5_021FAF08 = { +static const ListMenuTemplate Unk_ov5_021FAF08 = { NULL, NULL, NULL, @@ -259,14 +254,14 @@ static const UnkStruct_ov84_02240FA8 Unk_ov5_021FAF08 = { static BOOL ov5_021EAB58(UnkStruct_ov5_021EAE78 *param0) { UnkStruct_0202B370 *v0 = sub_0202B370(param0->unk_34); - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; int v2 = sub_0202AF94(v0); int v3 = 5; - param0->unk_00 = sub_02013A04(v2 + 1, 4); + param0->unk_00 = StringList_New(v2 + 1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_20, 3, 19, 1, 12, v3 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (10 * (v3 + 2) * 2)); - Window_Show(¶m0->unk_20, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_20, 3, 19, 1, 12, v3 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (10 * (v3 + 2) * 2)); + Window_DrawStandardFrame(¶m0->unk_20, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v4; @@ -275,23 +270,23 @@ static BOOL ov5_021EAB58(UnkStruct_ov5_021EAE78 *param0) for (v5 = 0; v5 < 32; v5++) { if (sub_0202AF78(v0, v5)) { Strbuf_CopyChars(param0->unk_08, sub_0202AEF0(v0, v5)); - sub_02013A6C(param0->unk_00, param0->unk_08, v5); + StringList_AddFromStrbuf(param0->unk_00, param0->unk_08, v5); } } - sub_02013A4C(param0->unk_00, param0->unk_3C, 11, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_00, param0->unk_3C, 11, 0xfffffffe); } v1 = Unk_ov5_021FAF08; - v1.unk_10 = v2 + 1; - v1.unk_12 = v3; - v1.unk_00 = param0->unk_00; - v1.unk_0C = ¶m0->unk_20; - v1.unk_04 = ov5_021EAF90; - v1.unk_1C = param0; + v1.count = v2 + 1; + v1.maxDisplay = v3; + v1.choices = param0->unk_00; + v1.window = ¶m0->unk_20; + v1.cursorCallback = ov5_021EAF90; + v1.tmp = param0; - param0->unk_04 = sub_0200112C(&v1, 0, 0, 4); + param0->unk_04 = ListMenu_New(&v1, 0, 0, 4); Window_CopyToVRAM(¶m0->unk_20); param0->unk_48 = 9; @@ -303,7 +298,7 @@ static BOOL ov5_021EAC44(UnkStruct_ov5_021EAE78 *param0) TrainerInfo *v0; int v1; - v1 = sub_02001288(param0->unk_04); + v1 = ListMenu_ProcessInput(param0->unk_04); switch (v1) { case 0xffffffff: @@ -333,10 +328,10 @@ static BOOL ov5_021EAC44(UnkStruct_ov5_021EAE78 *param0) break; } - Window_Clear(¶m0->unk_20, 0); + Window_EraseStandardFrame(¶m0->unk_20, 0); Window_Remove(¶m0->unk_20); - sub_02001384(param0->unk_04, NULL, NULL); - sub_02013A3C(param0->unk_00); + ListMenu_Free(param0->unk_04, NULL, NULL); + StringList_Free(param0->unk_00); return 0; } @@ -344,7 +339,7 @@ static BOOL ov5_021EAC44(UnkStruct_ov5_021EAE78 *param0) static BOOL ov5_021EACFC(UnkStruct_ov5_021EAE78 *param0) { if (Text_IsPrinterActive(param0->unk_40) == 0) { - param0->unk_44 = sub_02002100(param0->fieldSystem->unk_08, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); + param0->unk_44 = Menu_MakeYesNoChoice(param0->fieldSystem->bgConfig, &Unk_ov5_021FAF00, 1024 - (18 + 12) - 9, 11, 4); param0->unk_48 = 11; } @@ -357,7 +352,7 @@ static BOOL ov5_021EAD38(UnkStruct_ov5_021EAE78 *param0) TrainerInfo *v1; DWCFriendData *v2; Strbuf *v3; - int v4 = sub_02002114(param0->unk_44, 4); + int v4 = Menu_ProcessInputAndHandleExit(param0->unk_44, 4); if (v4 == 0xffffffff) { return 0; @@ -440,7 +435,7 @@ static void ov5_021EAE78(UnkStruct_ov5_021EAE78 *param0, int param1) MessageLoader_GetStrbuf(param0->unk_3C, param1, param0->unk_08); StringTemplate_Format(param0->unk_38, param0->unk_0C, param0->unk_08); - FieldMessage_AddWindow(param0->fieldSystem->unk_08, ¶m0->unk_10, 3); + FieldMessage_AddWindow(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3); FieldMessage_DrawWindow(¶m0->unk_10, SaveData_Options(param0->fieldSystem->saveData)); param0->unk_40 = FieldMessage_Print(¶m0->unk_10, param0->unk_0C, SaveData_Options(param0->fieldSystem->saveData), 1); @@ -471,7 +466,7 @@ static void ov5_021EAF1C(UnkStruct_ov5_021EAE78 *param0) void ov5_021EAF50(FieldSystem *fieldSystem) { UnkStruct_ov5_021EAE78 *v0; - TaskManager *v1 = fieldSystem->unk_10; + TaskManager *v1 = fieldSystem->taskManager; v0 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_ov5_021EAE78)); ov5_021EAEE0(v0); @@ -487,7 +482,7 @@ void ov5_021EAF50(FieldSystem *fieldSystem) } } -static void ov5_021EAF90(BmpList *param0, u32 param1, u8 param2) +static void ov5_021EAF90(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); diff --git a/src/overlay005/ov5_021F007C.c b/src/overlay005/ov5_021F007C.c index 745ff97ea5..8ac533500b 100644 --- a/src/overlay005/ov5_021F007C.c +++ b/src/overlay005/ov5_021F007C.c @@ -113,7 +113,7 @@ static void ov5_021F013C(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSyste { UnkStruct_ov5_021F013C *v0 = param2; - ov5_021F0260(fieldSystem->unk_08); + ov5_021F0260(fieldSystem->bgConfig); ov5_021F02B8(&v0->unk_00, 0, 10, 19); v0->unk_14 = 0; @@ -129,7 +129,7 @@ static void ov5_021F0188(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSyste { UnkStruct_ov5_021F013C *v0 = param2; - ov5_021F0260(fieldSystem->unk_08); + ov5_021F0260(fieldSystem->bgConfig); ov5_021F02B8(&v0->unk_00, 10, 0, 15); v0->unk_14 = 0; @@ -307,8 +307,8 @@ static void ov5_021F0310(FieldSystem *fieldSystem) G2_SetBG2Priority(3); Bg_LoadPalette(2, &v0, 2, ((6 * 32) + 4)); - Bg_FillTilesRange(fieldSystem->unk_08, 2, 2, 1, 2); - Bg_FillTilemap(fieldSystem->unk_08, 2, ((6 << 12) | 2)); + Bg_FillTilesRange(fieldSystem->bgConfig, 2, 2, 1, 2); + Bg_FillTilemap(fieldSystem->bgConfig, 2, ((6 << 12) | 2)); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); ov5_021F02F4(fieldSystem); @@ -323,8 +323,8 @@ static void ov5_021F0374(FieldSystem *fieldSystem) G2_SetBG3Priority(3); Bg_LoadPalette(3, &v0, 2, ((6 * 32) + 4)); - Bg_FillTilesRange(fieldSystem->unk_08, 3, 2, 1, 2); - Bg_FillTilemap(fieldSystem->unk_08, 3, ((6 << 12) | 2)); + Bg_FillTilesRange(fieldSystem->bgConfig, 3, 2, 1, 2); + Bg_FillTilemap(fieldSystem->bgConfig, 3, ((6 << 12) | 2)); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, 1); ov5_021F02F4(fieldSystem); @@ -524,7 +524,7 @@ BOOL ov5_021F0488(TaskManager *param0) G2_BlendNone(); Bg_SetPriority(2, 3); - Bg_ClearTilemap(fieldSystem->unk_08, 2); + Bg_ClearTilemap(fieldSystem->bgConfig, 2); } else { Bg_SetPriority(2, 1); } diff --git a/src/overlay005/ov5_021F08CC.c b/src/overlay005/ov5_021F08CC.c index 1beaf22697..c1efad966c 100644 --- a/src/overlay005/ov5_021F08CC.c +++ b/src/overlay005/ov5_021F08CC.c @@ -25,13 +25,13 @@ #include "party.h" #include "player_avatar.h" #include "pokemon.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0201D15C.h" #include "unk_020508D4.h" #include "unk_02050A74.h" @@ -521,7 +521,7 @@ static void ov5_021F0DC4(UnkStruct_ov5_021F0D6C *param0) { FieldSystem *fieldSystem = param0->fieldSystem; - FieldMessage_AddWindow(fieldSystem->unk_08, ¶m0->window, 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, ¶m0->window, 3); FieldMessage_DrawWindow(¶m0->window, SaveData_Options(fieldSystem->saveData)); } @@ -542,7 +542,7 @@ static void ov5_021F0DE8(UnkStruct_ov5_021F0D6C *param0, u32 param1) static int ov5_021F0E24(UnkStruct_ov5_021F0D6C *param0) { if ((FieldMessage_FinishedPrinting(param0->unk_28) == 1) && (ov5_021F0D54() == 1)) { - sub_0200E084(¶m0->window, 0); + Window_EraseMessageBox(¶m0->window, 0); Window_Remove(¶m0->window); return 1; } diff --git a/src/overlay005/ov5_021F0E84.c b/src/overlay005/ov5_021F0E84.c index 724e2d2c40..ad1cbfadf1 100644 --- a/src/overlay005/ov5_021F0E84.c +++ b/src/overlay005/ov5_021F0E84.c @@ -515,7 +515,7 @@ u16 ov5_021F0E84(u16 param0) u16 ov5_021F0E90(u16 param0, u16 param1) { - if ((param0 == 487) && (param1 == 1)) { + if ((param0 == SPECIES_GIRATINA) && (param1 == 1)) { return 0; } diff --git a/src/overlay005/ov5_021F6454.c b/src/overlay005/ov5_021F6454.c index 6dc266e992..24c951a9d0 100644 --- a/src/overlay005/ov5_021F6454.c +++ b/src/overlay005/ov5_021F6454.c @@ -4,46 +4,46 @@ #include #include "consts/game_records.h" +#include "consts/items.h" +#include "consts/species.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020216E0_decl.h" #include "struct_decls/struct_0202C878_decl.h" #include "struct_decls/struct_020308A0_decl.h" #include "struct_decls/struct_02061830_decl.h" #include "struct_decls/struct_02061AB4_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "field/field_system.h" #include "overlay005/ov5_021EB1A0.h" #include "overlay005/ov5_021ECE40.h" #include "overlay005/struct_ov5_021F6704_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" #include "field_script_context.h" +#include "font.h" #include "game_records.h" #include "graphics.h" #include "heap.h" #include "inlines.h" +#include "list_menu.h" #include "map_object.h" #include "message.h" #include "narc.h" #include "party.h" #include "player_avatar.h" #include "pokemon.h" +#include "render_window.h" #include "savedata_misc.h" #include "script_manager.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" -#include "unk_0200112C.h" #include "unk_020041CC.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0201D15C.h" #include "unk_02020AEC.h" @@ -83,11 +83,11 @@ struct UnkStruct_ov5_021F6704_t { u16 *unk_210; u16 *unk_214; u16 *unk_218; - UnkStruct_ov84_02240FA8 unk_21C; - BmpList *unk_23C; + ListMenuTemplate unk_21C; + ListMenu *unk_23C; u16 unk_240; u16 unk_242; - ResourceMetadata unk_244[120]; + StringList unk_244[120]; u16 unk_604[120]; u16 unk_6F4; }; @@ -108,8 +108,8 @@ void ov5_021F6760(UnkStruct_ov5_021F6704 *param0, u32 param1, u32 param2, u32 pa static void ov5_021F6768(UnkStruct_ov5_021F6704 *param0); static void ov5_021F6830(UnkStruct_ov5_021F6704 *param0, u32 param1, u32 param2, u32 param3); static void ov5_021F68BC(UnkStruct_ov5_021F6704 *param0); -static void ov5_021F69CC(BmpList *param0, u32 param1, u8 param2); -static void ov5_021F69F0(BmpList *param0, u32 param1, u8 param2); +static void ov5_021F69CC(ListMenu *param0, u32 param1, u8 param2); +static void ov5_021F69F0(ListMenu *param0, u32 param1, u8 param2); static void ov5_021F6A34(SysTask *param0, void *param1); static void ov5_021F6AD4(UnkStruct_ov5_021F6704 *param0); @@ -236,8 +236,8 @@ static void ov5_021F6624(FieldSystem *fieldSystem, UnkStruct_ov5_021F6704 *param param1->unk_6F4 = param4; for (v0 = 0; v0 < 120; v0++) { - param1->unk_244[v0].unk_00 = NULL; - param1->unk_244[v0].unk_04 = 0; + param1->unk_244[v0].entry = NULL; + param1->unk_244[v0].index = 0; param1->unk_604[v0] = 0xff; } @@ -275,16 +275,16 @@ void ov5_021F6760(UnkStruct_ov5_021F6704 *param0, u32 param1, u32 param2, u32 pa static void ov5_021F6768(UnkStruct_ov5_021F6704 *param0) { if (param0->unk_20B > 8) { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_208, param0->unk_209, 11, 8 * 2, 13, 1); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_208, param0->unk_209, 11, 8 * 2, 13, 1); } else { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_208, param0->unk_209, 11, param0->unk_20B * 2, 13, 1); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_208, param0->unk_209, 11, param0->unk_20B * 2, 13, 1); } - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); ov5_021F68BC(param0); - param0->unk_23C = sub_0200112C((const UnkStruct_ov84_02240FA8 *)¶m0->unk_21C, *param0->unk_214, *param0->unk_218, 4); + param0->unk_23C = ListMenu_New((const ListMenuTemplate *)¶m0->unk_21C, *param0->unk_214, *param0->unk_218, 4); param0->unk_04 = SysTask_Start(ov5_021F6A34, param0, 0); return; @@ -300,14 +300,14 @@ static void ov5_021F6830(UnkStruct_ov5_021F6704 *param0, u32 param1, u32 param2, MessageLoader_GetStrbuf(param0->unk_1FC, param1, v2); StringTemplate_Format(param0->unk_200, param0->unk_1C[param0->unk_20B], v2); - param0->unk_244[param0->unk_20B].unk_00 = (const void *)param0->unk_1C[param0->unk_20B]; + param0->unk_244[param0->unk_20B].entry = (const void *)param0->unk_1C[param0->unk_20B]; Strbuf_Free(v2); } if (param3 == 0xfa) { - param0->unk_244[param0->unk_20B].unk_04 = 0xfffffffd; + param0->unk_244[param0->unk_20B].index = 0xfffffffd; } else { - param0->unk_244[param0->unk_20B].unk_04 = param3; + param0->unk_244[param0->unk_20B].index = param3; } param0->unk_604[param0->unk_20B] = param2; @@ -318,46 +318,46 @@ static void ov5_021F6830(UnkStruct_ov5_021F6704 *param0, u32 param1, u32 param2, static void ov5_021F68BC(UnkStruct_ov5_021F6704 *param0) { - param0->unk_21C.unk_00 = param0->unk_244; - param0->unk_21C.unk_04 = ov5_021F69F0; - param0->unk_21C.unk_08 = ov5_021F69CC; - param0->unk_21C.unk_0C = ¶m0->unk_08; - param0->unk_21C.unk_10 = param0->unk_20B; - param0->unk_21C.unk_12 = 8; - param0->unk_21C.unk_14 = 1; - param0->unk_21C.unk_15 = 12; - param0->unk_21C.unk_16 = 2; - param0->unk_21C.unk_17_0 = 1; - param0->unk_21C.unk_17_4 = 1; - param0->unk_21C.unk_18_0 = 15; - param0->unk_21C.unk_18_4 = 2; - param0->unk_21C.unk_1A_0 = 0; - param0->unk_21C.unk_1A_3 = 16; - param0->unk_21C.unk_1A_7 = 1; - param0->unk_21C.unk_1A_9 = 0; - param0->unk_21C.unk_1A_15 = 0; - param0->unk_21C.unk_1C = (void *)param0; + param0->unk_21C.choices = param0->unk_244; + param0->unk_21C.cursorCallback = ov5_021F69F0; + param0->unk_21C.printCallback = ov5_021F69CC; + param0->unk_21C.window = ¶m0->unk_08; + param0->unk_21C.count = param0->unk_20B; + param0->unk_21C.maxDisplay = 8; + param0->unk_21C.headerXOffset = 1; + param0->unk_21C.textXOffset = 12; + param0->unk_21C.cursorXOffset = 2; + param0->unk_21C.yOffset = 1; + param0->unk_21C.textColorFg = 1; + param0->unk_21C.textColorBg = 15; + param0->unk_21C.textColorShadow = 2; + param0->unk_21C.letterSpacing = 0; + param0->unk_21C.lineSpacing = 0; + param0->unk_21C.pagerMode = PAGER_MODE_LEFT_RIGHT_PAD; + param0->unk_21C.fontID = FONT_SYSTEM; + param0->unk_21C.cursorType = 0; + param0->unk_21C.tmp = (void *)param0; return; } -static void ov5_021F69CC(BmpList *param0, u32 param1, u8 param2) +static void ov5_021F69CC(ListMenu *param0, u32 param1, u8 param2) { if (param1 == 0xfffffffd) { - sub_0200147C(param0, 3, 15, 4); + ListMenu_SetAltTextColors(param0, 3, 15, 4); } else { - sub_0200147C(param0, 1, 15, 2); + ListMenu_SetAltTextColors(param0, 1, 15, 2); } } -static void ov5_021F69F0(BmpList *param0, u32 param1, u8 param2) +static void ov5_021F69F0(ListMenu *param0, u32 param1, u8 param2) { u32 v0, v1; u16 v2 = 0; u16 v3 = 0; - UnkStruct_ov5_021F6704 *v4 = (UnkStruct_ov5_021F6704 *)sub_02001504(param0, 19); + UnkStruct_ov5_021F6704 *v4 = (UnkStruct_ov5_021F6704 *)ListMenu_GetAttribute(param0, 19); - sub_020014DC(param0, &v2, &v3); + ListMenu_GetListAndCursorPos(param0, &v2, &v3); if ((v4->unk_214 != NULL) && (v4->unk_218 != NULL)) { *v4->unk_214 = v2; @@ -380,14 +380,14 @@ static void ov5_021F6A34(SysTask *param0, void *param1) return; } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } - v1 = sub_02001288(v2->unk_23C); + v1 = ListMenu_ProcessInput(v2->unk_23C); v0 = v2->unk_6F4; - sub_020014D0(v2->unk_23C, &v2->unk_6F4); + ListMenu_CalcTrueCursorPos(v2->unk_23C, &v2->unk_6F4); if (v0 != v2->unk_6F4) { Sound_PlayEffect(1500); @@ -418,8 +418,8 @@ static void ov5_021F6AD4(UnkStruct_ov5_021F6704 *param0) int v0; Sound_PlayEffect(1500); - sub_02001384(param0->unk_23C, NULL, NULL); - Window_Clear(param0->unk_21C.unk_0C, 0); + ListMenu_Free(param0->unk_23C, NULL, NULL); + Window_EraseStandardFrame(param0->unk_21C.window, 0); Window_Remove(¶m0->unk_08); for (v0 = 0; v0 < 120; v0++) { @@ -510,13 +510,13 @@ BOOL ScrCmd_31D(ScriptContext *param0) v0 = Party_GetPokemonBySlotIndex(v1, v3); v8[v3] = Pokemon_GetValue(v0, MON_DATA_HELD_ITEM, NULL); - if (v8[v3] == 112) { + if (v8[v3] == ITEM_GRISEOUS_ORB) { v9++; } } if (v9 > 0) { - v4 = Bag_TryAddItem(SaveData_GetBag(fieldSystem->saveData), 112, v9, 4); + v4 = Bag_TryAddItem(SaveData_GetBag(fieldSystem->saveData), ITEM_GRISEOUS_ORB, v9, 4); if (v4 == 0) { *v11 = 0xff; @@ -526,9 +526,9 @@ BOOL ScrCmd_31D(ScriptContext *param0) v7 = 0; for (v3 = 0; v3 < v2; v3++) { - if (v8[v3] == 112) { + if (v8[v3] == ITEM_GRISEOUS_ORB) { v0 = Party_GetPokemonBySlotIndex(v1, v3); - Pokemon_SetValue(v0, 6, &v7); + Pokemon_SetValue(v0, MON_DATA_HELD_ITEM, &v7); } } } @@ -541,13 +541,13 @@ BOOL ScrCmd_31D(ScriptContext *param0) v5 = Pokemon_GetValue(v0, MON_DATA_SPECIES, NULL); switch (v5) { - case 487: + case SPECIES_GIRATINA: Pokemon_SetGiratinaForm(v0); break; - case 479: + case SPECIES_ROTOM: Pokemon_SetRotomForm(v0, 0, 0); break; - case 492: + case SPECIES_SHAYMIN: Pokemon_SetShayminForm(v0, 0); break; } @@ -580,8 +580,8 @@ BOOL ScrCmd_31E(ScriptContext *param0) v5 = Pokemon_GetValue(v0, MON_DATA_HELD_ITEM, NULL); - if (v5 == 112) { - v6 = Bag_TryAddItem(SaveData_GetBag(fieldSystem->saveData), 112, 1, 4); + if (v5 == ITEM_GRISEOUS_ORB) { + v6 = Bag_TryAddItem(SaveData_GetBag(fieldSystem->saveData), ITEM_GRISEOUS_ORB, 1, 4); if (v6 == 0) { *v9 = 0xff; @@ -589,7 +589,7 @@ BOOL ScrCmd_31E(ScriptContext *param0) } v4 = 0; - Pokemon_SetValue(v0, 6, &v4); + Pokemon_SetValue(v0, MON_DATA_HELD_ITEM, &v4); } v3 = Pokemon_GetValue(v0, MON_DATA_FORM, NULL); @@ -598,13 +598,13 @@ BOOL ScrCmd_31E(ScriptContext *param0) v2 = Pokemon_GetValue(v0, MON_DATA_SPECIES, NULL); switch (v2) { - case 487: + case SPECIES_GIRATINA: Pokemon_SetGiratinaForm(v0); break; - case 479: + case SPECIES_ROTOM: Pokemon_SetRotomForm(v0, 0, 0); break; - case 492: + case SPECIES_SHAYMIN: Pokemon_SetShayminForm(v0, 0); break; } @@ -621,7 +621,7 @@ BOOL ScrCmd_2F1(ScriptContext *param0) u16 v3 = ScriptContext_GetVar(param0); v0 = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(fieldSystem->saveData), v2); - Pokemon_SetValue(v0, 112, &v3); + Pokemon_SetValue(v0, MON_DATA_FORM, &v3); return 0; } @@ -647,7 +647,7 @@ BOOL ScrCmd_303(ScriptContext *param0) v1 = Pokemon_GetValue(v6, MON_DATA_FORM, NULL); v2 = Pokemon_GetValue(v6, MON_DATA_IS_EGG, NULL); - if ((v0 == 479) && (v1 != 0) && (v2 == 0)) { + if ((v0 == SPECIES_ROTOM) && (v1 != 0) && (v2 == 0)) { if (*v10 == 0xff) { *v10 = v4; } @@ -695,22 +695,22 @@ BOOL ScrCmd_2FF(ScriptContext *param0) if (Pokemon_GetValue(v3, MON_DATA_IS_EGG, NULL) == 0) { switch (v0) { - case 10: - case 11: - case 13: - case 14: - case 129: - case 132: - case 202: - case 235: - case 265: - case 266: - case 268: - case 360: - case 374: - case 412: - case 415: - case 401: + case SPECIES_CATERPIE: + case SPECIES_METAPOD: + case SPECIES_WEEDLE: + case SPECIES_KAKUNA: + case SPECIES_MAGIKARP: + case SPECIES_DITTO: + case SPECIES_WOBBUFFET: + case SPECIES_SMEARGLE: + case SPECIES_WURMPLE: + case SPECIES_SILCOON: + case SPECIES_CASCOON: + case SPECIES_WYNAUT: + case SPECIES_BELDUM: + case SPECIES_BURMY: + case SPECIES_COMBEE: + case SPECIES_KRICKETOT: *v6 = 0xffff; return 0; } diff --git a/src/overlay005/ov5_021F77A8.c b/src/overlay005/ov5_021F77A8.c index 52aa9368bf..25a233c615 100644 --- a/src/overlay005/ov5_021F77A8.c +++ b/src/overlay005/ov5_021F77A8.c @@ -6,33 +6,30 @@ #include "constants/forms.h" #include "constants/species.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" - #include "field/field_system.h" #include "overlay005/ov5_021DC018.h" #include "overlay005/struct_ov5_021DC1A4_decl.h" #include "overlay005/struct_ov5_021F7ED8_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" #include "field_script_context.h" +#include "font.h" #include "heap.h" #include "inlines.h" +#include "list_menu.h" #include "message.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "script_manager.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "tutor_movesets.h" -#include "unk_0200112C.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202631C.h" #include "unk_02054884.h" @@ -59,11 +56,11 @@ struct UnkStruct_ov5_021F7ED8_t { u8 unk_C7; u16 *unk_C8; u16 *unk_CC; - UnkStruct_ov84_02240FA8 unk_D0; - BmpList *unk_F0; + ListMenuTemplate unk_D0; + ListMenu *unk_F0; u16 unk_F4; u16 unk_F6; - ResourceMetadata unk_F8[39]; + StringList unk_F8[39]; u16 unk_230[39]; u16 unk_27E; }; @@ -85,7 +82,7 @@ void ov5_021F7F2C(UnkStruct_ov5_021F7ED8 *param0, u32 param1, u32 param2, u32 pa static void ov5_021F7F34(UnkStruct_ov5_021F7ED8 *param0); static void ov5_021F7FF8(UnkStruct_ov5_021F7ED8 *param0, u32 param1, u32 param2, u32 param3); static void ov5_021F8090(UnkStruct_ov5_021F7ED8 *param0); -static void ov5_021F819C(BmpList *param0, u32 param1, u8 param2); +static void ov5_021F819C(ListMenu *param0, u32 param1, u8 param2); static void ov5_021F81A8(SysTask *param0, void *param1); static void ov5_021F8250(UnkStruct_ov5_021F7ED8 *param0); @@ -95,7 +92,7 @@ BOOL ScrCmd_337(ScriptContext *param0) u16 *v1 = FieldSystem_GetVarPointer(param0->fieldSystem, ScriptContext_ReadHalfWord(param0)); PokedexData *v2 = SaveData_Pokedex(param0->fieldSystem->saveData); - *v1 = Pokedex_HasEncountered(v2, v0); + *v1 = Pokedex_HasSeenSpecies(v2, v0); return 0; } @@ -287,7 +284,7 @@ static u16 ov5_021F7B60(Pokemon *param0, u16 param1) v5 = Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL); - for (v2 = 0; v2 < 4; v2++) { + for (v2 = 0; v2 < LEARNED_MOVES_MAX; v2++) { v6[v2] = Pokemon_GetValue(param0, MON_DATA_MOVE1 + v2, NULL); } @@ -298,7 +295,7 @@ static u16 ov5_021F7B60(Pokemon *param0, u16 param1) v4 = ((v3 >> v1) & 0x1); if ((v4 == 1) && (param1 == sTeachableMoves[v0 * 8 + v1].location)) { - for (v2 = 0; v2 < 4; v2++) { + for (v2 = 0; v2 < LEARNED_MOVES_MAX; v2++) { if (v6[v2] == sTeachableMoves[v0 * 8 + v1].moveID) { break; } @@ -346,8 +343,8 @@ BOOL ScrCmd_2E6(ScriptContext *param0) v3 = 0; if (v14 != 0xff) { - for (v5 = 0; v5 < 4; v5++) { - v11[v5] = Pokemon_GetValue(v6, (54 + v5), NULL); + for (v5 = 0; v5 < LEARNED_MOVES_MAX; v5++) { + v11[v5] = Pokemon_GetValue(v6, (MON_DATA_MOVE1 + v5), NULL); } for (v2 = 0; v2 < MOVESET_MASK_SIZE; v2++) { @@ -357,7 +354,7 @@ BOOL ScrCmd_2E6(ScriptContext *param0) v1 = ((v0 >> v4) & 0x1); if ((v1 == 1) && (v15 == sTeachableMoves[v2 * 8 + v4].location)) { - for (v5 = 0; v5 < 4; v5++) { + for (v5 = 0; v5 < LEARNED_MOVES_MAX; v5++) { if (v11[v5] == sTeachableMoves[v2 * 8 + v4].moveID) { break; } @@ -434,8 +431,8 @@ static void ov5_021F7E18(FieldSystem *fieldSystem, UnkStruct_ov5_021F7ED8 *param param1->unk_27E = param4; for (v0 = 0; v0 < ((NELEMS(sTeachableMoves)) + 1); v0++) { - param1->unk_F8[v0].unk_00 = NULL; - param1->unk_F8[v0].unk_04 = 0; + param1->unk_F8[v0].entry = NULL; + param1->unk_F8[v0].index = 0; param1->unk_230[v0] = 0xff; } @@ -474,16 +471,16 @@ void ov5_021F7F2C(UnkStruct_ov5_021F7ED8 *param0, u32 param1, u32 param2, u32 pa static void ov5_021F7F34(UnkStruct_ov5_021F7ED8 *param0) { if (param0->unk_C7 > 8) { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_C4, param0->unk_C5, 11, 8 * 2, 13, 1); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_C4, param0->unk_C5, 11, 8 * 2, 13, 1); } else { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, param0->unk_C4, param0->unk_C5, 11, param0->unk_C7 * 2, 13, 1); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, param0->unk_C4, param0->unk_C5, 11, param0->unk_C7 * 2, 13, 1); } - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); ov5_021F8090(param0); - param0->unk_F0 = sub_0200112C((const UnkStruct_ov84_02240FA8 *)¶m0->unk_D0, 0, param0->unk_C2, 4); + param0->unk_F0 = ListMenu_New((const ListMenuTemplate *)¶m0->unk_D0, 0, param0->unk_C2, 4); param0->unk_04 = SysTask_Start(ov5_021F81A8, param0, 0); return; @@ -499,14 +496,14 @@ static void ov5_021F7FF8(UnkStruct_ov5_021F7ED8 *param0, u32 param1, u32 param2, MessageLoader_GetStrbuf(param0->unk_B8, param1, v2); StringTemplate_Format(param0->unk_BC, param0->unk_1C[param0->unk_C7], v2); - param0->unk_F8[param0->unk_C7].unk_00 = (const void *)param0->unk_1C[param0->unk_C7]; + param0->unk_F8[param0->unk_C7].entry = (const void *)param0->unk_1C[param0->unk_C7]; Strbuf_Free(v2); } if (param3 == 0xfa) { - param0->unk_F8[param0->unk_C7].unk_04 = 0xfffffffd; + param0->unk_F8[param0->unk_C7].index = 0xfffffffd; } else { - param0->unk_F8[param0->unk_C7].unk_04 = param3; + param0->unk_F8[param0->unk_C7].index = param3; } param0->unk_230[param0->unk_C7] = param2; @@ -517,35 +514,35 @@ static void ov5_021F7FF8(UnkStruct_ov5_021F7ED8 *param0, u32 param1, u32 param2, static void ov5_021F8090(UnkStruct_ov5_021F7ED8 *param0) { - param0->unk_D0.unk_00 = param0->unk_F8; - param0->unk_D0.unk_04 = ov5_021F819C; - param0->unk_D0.unk_08 = NULL; - param0->unk_D0.unk_0C = ¶m0->unk_08; - param0->unk_D0.unk_10 = param0->unk_C7; - param0->unk_D0.unk_12 = 8; - param0->unk_D0.unk_14 = 1; - param0->unk_D0.unk_15 = 12; - param0->unk_D0.unk_16 = 2; - param0->unk_D0.unk_17_0 = 1; - param0->unk_D0.unk_17_4 = 1; - param0->unk_D0.unk_18_0 = 15; - param0->unk_D0.unk_18_4 = 2; - param0->unk_D0.unk_1A_0 = 0; - param0->unk_D0.unk_1A_3 = 16; - param0->unk_D0.unk_1A_7 = 1; - param0->unk_D0.unk_1A_9 = 0; - param0->unk_D0.unk_1A_15 = 0; - param0->unk_D0.unk_1C = (void *)param0; + param0->unk_D0.choices = param0->unk_F8; + param0->unk_D0.cursorCallback = ov5_021F819C; + param0->unk_D0.printCallback = NULL; + param0->unk_D0.window = ¶m0->unk_08; + param0->unk_D0.count = param0->unk_C7; + param0->unk_D0.maxDisplay = 8; + param0->unk_D0.headerXOffset = 1; + param0->unk_D0.textXOffset = 12; + param0->unk_D0.cursorXOffset = 2; + param0->unk_D0.yOffset = 1; + param0->unk_D0.textColorFg = 1; + param0->unk_D0.textColorBg = 15; + param0->unk_D0.textColorShadow = 2; + param0->unk_D0.letterSpacing = 0; + param0->unk_D0.lineSpacing = 0; + param0->unk_D0.pagerMode = PAGER_MODE_LEFT_RIGHT_PAD; + param0->unk_D0.fontID = FONT_SYSTEM; + param0->unk_D0.cursorType = 0; + param0->unk_D0.tmp = (void *)param0; return; } -static void ov5_021F819C(BmpList *param0, u32 param1, u8 param2) +static void ov5_021F819C(ListMenu *param0, u32 param1, u8 param2) { u32 v0, v1; u16 v2 = 0; u16 v3 = 0; - UnkStruct_ov5_021F7ED8 *v4 = (UnkStruct_ov5_021F7ED8 *)sub_02001504(param0, 19); + UnkStruct_ov5_021F7ED8 *v4 = (UnkStruct_ov5_021F7ED8 *)ListMenu_GetAttribute(param0, 19); return; } @@ -563,14 +560,14 @@ static void ov5_021F81A8(SysTask *param0, void *param1) return; } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } - v1 = sub_02001288(v2->unk_F0); + v1 = ListMenu_ProcessInput(v2->unk_F0); v0 = v2->unk_27E; - sub_020014D0(v2->unk_F0, &v2->unk_27E); + ListMenu_CalcTrueCursorPos(v2->unk_F0, &v2->unk_27E); if (v0 != v2->unk_27E) { Sound_PlayEffect(1500); @@ -602,8 +599,8 @@ static void ov5_021F8250(UnkStruct_ov5_021F7ED8 *param0) int v0; Sound_PlayEffect(1500); - sub_02001384(param0->unk_F0, NULL, NULL); - Window_Clear(param0->unk_D0.unk_0C, 0); + ListMenu_Free(param0->unk_F0, NULL, NULL); + Window_EraseStandardFrame(param0->unk_D0.window, 0); Window_Remove(¶m0->unk_08); for (v0 = 0; v0 < ((NELEMS(sTeachableMoves)) + 1); v0++) { diff --git a/src/overlay005/save_info_window.c b/src/overlay005/save_info_window.c new file mode 100644 index 0000000000..48cb357d11 --- /dev/null +++ b/src/overlay005/save_info_window.c @@ -0,0 +1,227 @@ +#include "overlay005/save_info_window.h" + +#include +#include + +#include "constants/field/window.h" +#include "constants/narc.h" +#include "consts/map.h" + +#include "struct_decls/pokedexdata_decl.h" +#include "struct_defs/struct_02049FA8.h" + +#include "overlay005/ov5_021EA714.h" +#include "overlay005/save_info_window.h" +#include "overlay025/poketch_system.h" +#include "text/pl_msg.naix" + +#include "bg_window.h" +#include "field_overworld_state.h" +#include "font.h" +#include "map_header.h" +#include "message_util.h" +#include "player_avatar.h" +#include "render_window.h" +#include "save_player.h" +#include "savedata.h" +#include "strbuf.h" +#include "text.h" +#include "trainer_info.h" +#include "unk_0202631C.h" +#include "unk_020366A0.h" + +static void FieldSystem_SaveObjectsAndLocation(FieldSystem *fieldSystem); + +static const int sSaveInfoLabels[] = { + SAVE_INFO_LABEL_MAP_NAME, + SAVE_INFO_LABEL_PLAYER_NAME, + SAVE_INFO_LABEL_BADGE_COUNT, + SAVE_INFO_LABEL_POKEDEX_COUNT, + SAVE_INFO_LABEL_PLAY_TIME +}; + +static const int sSaveInfoValues[] = { + SAVE_INFO_PLAYER_NAME, + SAVE_INFO_BADGE_COUNT, + SAVE_INFO_POKEDEX_COUNT, + SAVE_INFO_PLAY_TIME +}; + +static void SaveInfo_SetValues(SaveInfo *saveInfo, const FieldSystem *fieldSystem) +{ + SaveData *saveData = fieldSystem->saveData; + Location *curLocation = sub_0203A720(SaveData_GetFieldOverworldState(saveData)); + PokedexData *pokedex = SaveData_Pokedex(saveData); + + saveInfo->mapLabelTextID = MapHeader_GetMapLabelTextID(curLocation->mapId); + + if (Pokedex_IsObtained(pokedex)) { + saveInfo->pokedexCount = Pokedex_CountSeen(pokedex); + } else { + saveInfo->pokedexCount = 0; + } + + saveInfo->trainerInfo = SaveData_GetTrainerInfo(saveData); + saveInfo->playTime = SaveData_GetPlayTime(saveData); +} + +static void SaveInfoWindow_SetStrings(StringTemplate *strTemplate, const SaveInfo *saveInfo) +{ + StringTemplate_SetLocationName(strTemplate, 0, saveInfo->mapLabelTextID); + StringTemplate_SetPlayerName(strTemplate, 1, saveInfo->trainerInfo); + StringTemplate_SetNumber(strTemplate, 2, TrainerInfo_BadgeCount(saveInfo->trainerInfo), 1, PADDING_MODE_NONE, CHARSET_MODE_EN); + + int maxDigits, padding; + + if (saveInfo->pokedexCount >= 100) { + maxDigits = 3; + padding = PADDING_MODE_NONE; + } else if (saveInfo->pokedexCount >= 10) { + maxDigits = 3; + padding = PADDING_MODE_SPACES; + } else { + maxDigits = 2; + padding = PADDING_MODE_SPACES; + } + + StringTemplate_SetNumber(strTemplate, 3, saveInfo->pokedexCount, maxDigits, padding, CHARSET_MODE_EN); + + int playTimeHours = PlayTime_GetHours(saveInfo->playTime); + + if (playTimeHours >= 100) { + maxDigits = 3; + padding = PADDING_MODE_NONE; + } else if (playTimeHours >= 10) { + maxDigits = 3; + padding = PADDING_MODE_SPACES; + } else { + maxDigits = 2; + padding = PADDING_MODE_SPACES; + } + + StringTemplate_SetNumber(strTemplate, 4, playTimeHours, maxDigits, padding, CHARSET_MODE_EN); + StringTemplate_SetNumber(strTemplate, 5, PlayTime_GetMinutes(saveInfo->playTime), 2, PADDING_MODE_ZEROES, CHARSET_MODE_EN); +} + +static int SaveInfoWindow_Height(const SaveInfo *saveInfo) +{ + if (saveInfo->pokedexCount != 0) { + return SAVE_INFO_WINDOW_HEIGHT; + } else { + return SAVE_INFO_WINDOW_HEIGHT - 2; + } +} + +static void SaveInfoWindow_PrintText(const SaveInfoWindow *saveInfoWin) +{ + int fontSpacing = Font_GetAttribute(FONT_SYSTEM, FONTATTR_MAX_LETTER_HEIGHT) + Font_GetAttribute(FONT_SYSTEM, FONTATTR_LINE_SPACING); + int yOffset = 0; + Strbuf *buf = MessageUtil_ExpandedStrbuf(saveInfoWin->strTemplate, saveInfoWin->msgLoader, sSaveInfoLabels[0], saveInfoWin->heapID); + + Text_AddPrinterWithParams(saveInfoWin->window, FONT_SYSTEM, buf, 0, yOffset, TEXT_SPEED_NO_TRANSFER, NULL); + Strbuf_Free(buf); + + int xOffset; + + for (int i = 1; i < NELEMS(sSaveInfoLabels); i++) { + if (sSaveInfoLabels[i] == SAVE_INFO_LABEL_POKEDEX_COUNT && saveInfoWin->saveInfo.pokedexCount == 0) { + continue; + } + + yOffset += fontSpacing; + buf = MessageLoader_GetNewStrbuf(saveInfoWin->msgLoader, sSaveInfoLabels[i]); + + Text_AddPrinterWithParams(saveInfoWin->window, FONT_SYSTEM, buf, 0, yOffset, TEXT_SPEED_NO_TRANSFER, NULL); + Strbuf_Free(buf); + + buf = MessageUtil_ExpandedStrbuf(saveInfoWin->strTemplate, saveInfoWin->msgLoader, sSaveInfoValues[i - 1], saveInfoWin->heapID); + xOffset = SAVE_INFO_WINDOW_WIDTH * 8 - Font_CalcStrbufWidth(FONT_SYSTEM, buf, Font_GetAttribute(FONT_SYSTEM, FONTATTR_LETTER_SPACING)); + + Text_AddPrinterWithParams(saveInfoWin->window, FONT_SYSTEM, buf, xOffset, yOffset, TEXT_SPEED_NO_TRANSFER, NULL); + Strbuf_Free(buf); + } +} + +void SaveInfoWindow_Draw(SaveInfoWindow *saveInfoWin) +{ + saveInfoWin->window = Heap_AllocFromHeap(saveInfoWin->heapID, sizeof(Window)); + + Window_Add(saveInfoWin->bgConfig, saveInfoWin->window, saveInfoWin->bgLayer, 1, 1, saveInfoWin->width, saveInfoWin->height, FIELD_MESSAGE_PALETTE_INDEX, SAVE_INFO_MESSAGE_BASE_TILE); + LoadStandardWindowGraphics(saveInfoWin->bgConfig, saveInfoWin->bgLayer, SAVE_INFO_WINDOW_BASE_TILE, FIELD_WINDOW_PALETTE_INDEX, STANDARD_WINDOW_SYSTEM, saveInfoWin->heapID); + Window_FillTilemap(saveInfoWin->window, Font_GetAttribute(FONT_SYSTEM, FONTATTR_BG_COLOR)); + + SaveInfoWindow_PrintText(saveInfoWin); + Window_DrawStandardFrame(saveInfoWin->window, FALSE, SAVE_INFO_WINDOW_BASE_TILE, FIELD_WINDOW_PALETTE_INDEX); +} + +void SaveInfoWindow_Erase(SaveInfoWindow *saveInfoWin) +{ + Window_EraseStandardFrame(saveInfoWin->window, FALSE); + Window_Remove(saveInfoWin->window); + Heap_FreeToHeap(saveInfoWin->window); +} + +SaveInfoWindow *SaveInfoWindow_New(FieldSystem *fieldSystem, enum HeapId heapID, u8 bgLayer) +{ + SaveInfoWindow *saveInfoWin = Heap_AllocFromHeap(heapID, sizeof(SaveInfoWindow)); + + saveInfoWin->fieldSystem = fieldSystem; + saveInfoWin->heapID = heapID; + saveInfoWin->bgLayer = bgLayer; + saveInfoWin->bgConfig = fieldSystem->bgConfig; + saveInfoWin->strTemplate = StringTemplate_Default(heapID); + saveInfoWin->msgLoader = MessageLoader_Init(MESSAGE_LOADER_NARC_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, message_bank_save_info_window, heapID); + + SaveInfo_SetValues(&saveInfoWin->saveInfo, saveInfoWin->fieldSystem); + SaveInfoWindow_SetStrings(saveInfoWin->strTemplate, &saveInfoWin->saveInfo); + + saveInfoWin->width = SAVE_INFO_WINDOW_WIDTH; + saveInfoWin->height = SaveInfoWindow_Height(&saveInfoWin->saveInfo); + + return saveInfoWin; +} + +void SaveInfoWindow_Free(SaveInfoWindow *saveInfoWin) +{ + MessageLoader_Free(saveInfoWin->msgLoader); + StringTemplate_Free(saveInfoWin->strTemplate); + Heap_FreeToHeap(saveInfoWin); +} + +BOOL FieldSystem_Save(FieldSystem *fieldSystem) +{ + FieldSystem_SaveObjectsAndLocation(fieldSystem); + return SaveData_Save(fieldSystem->saveData) == SAVE_RESULT_OK; +} + +static void FieldSystem_SaveObjectsAndLocation(FieldSystem *fieldSystem) +{ + FieldSystem_SaveObjects(fieldSystem); + ov5_021EA714(fieldSystem, POKETCH_EVENT_SAVE, 0); + + fieldSystem->location->x = Player_GetXPos(fieldSystem->playerAvatar); + fieldSystem->location->z = Player_GetZPos(fieldSystem->playerAvatar); + fieldSystem->location->unk_04 = -1; + fieldSystem->location->unk_10 = PlayerAvatar_GetDir(fieldSystem->playerAvatar); +} + +void FieldSystem_SaveStateIfCommunicationOff(FieldSystem *fieldSystem) +{ + if (fieldSystem == NULL) { + GF_ASSERT(0); + return; + } + + switch (fieldSystem->location->mapId) { + case MAP_HEADER_UNION_ROOM: + case MAP_HEADER_COMMUNICATION_CLUB_COLOSSEUM_2P: + case MAP_HEADER_COMMUNICATION_CLUB_COLOSSEUM_4P: + return; + } + + if (sub_02038EB4() == TRUE) { + return; + } + + FieldSystem_SaveObjectsAndLocation(fieldSystem); +} diff --git a/src/overlay006/ov6_0223E140.c b/src/overlay006/ov6_0223E140.c index 09403c54b9..41422753f1 100644 --- a/src/overlay006/ov6_0223E140.c +++ b/src/overlay006/ov6_0223E140.c @@ -418,8 +418,8 @@ static void ov6_0223E25C(SysTask *param0, void *param1) UnkStruct_ov6_0223E140 *v0 = param1; ov6_0223E1B0(); - ov6_0223E2A4(v0->fieldSystem->unk_08); - ov6_0223E1D0(v0->fieldSystem->unk_08); + ov6_0223E2A4(v0->fieldSystem->bgConfig); + ov6_0223E1D0(v0->fieldSystem->bgConfig); SysTask_Done(param0); } @@ -429,8 +429,8 @@ static void ov6_0223E280(SysTask *param0, void *param1) UnkStruct_ov6_0223E140 *v0 = param1; GXLayers_SetBanks(&v0->unk_04); - ov6_0223E2A4(v0->fieldSystem->unk_08); - ov6_0223E2AC(v0->fieldSystem->unk_08); + ov6_0223E2A4(v0->fieldSystem->bgConfig); + ov6_0223E2AC(v0->fieldSystem->bgConfig); SysTask_Done(param0); } @@ -578,7 +578,7 @@ static BOOL ov6_0223E408(TaskManager *param0) ov6_0223E3D8(v1); if (ov6_0223FF6C(v1->unk_00) == 1) { - sub_020057A4(1628, 0); + Sound_StopEffect(1628, 0); v1->unk_0C++; v1->unk_04 = 16; } diff --git a/src/overlay006/ov6_02240C9C.c b/src/overlay006/ov6_02240C9C.c index a2f54b57cc..b4da5ebd75 100644 --- a/src/overlay006/ov6_02240C9C.c +++ b/src/overlay006/ov6_02240C9C.c @@ -326,7 +326,7 @@ BOOL ov6_02240D5C(FieldSystem *fieldSystem) v13[i].minLevel = encounterData->grassEncounters.encounters[i].level; } - BOOL nationalDexObtained = Pokedex_IsNationalUnlocked(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); + BOOL nationalDexObtained = Pokedex_IsNationalDexObtained(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); WildEncounters_ReplaceTimedEncounters(encounterData, &v13[2].species, &v13[3].species); WildEncounters_ReplaceRadarEncounters(fieldSystem, encounterData, &v13[0].species, &v13[1].species); @@ -514,7 +514,7 @@ BOOL ov6_022411C8(FieldSystem *fieldSystem, TaskManager *param1) v12[i].minLevel = encounterData->grassEncounters.encounters[i].level; } - BOOL nationalDexObtained = Pokedex_IsNationalUnlocked(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); + BOOL nationalDexObtained = Pokedex_IsNationalDexObtained(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); WildEncounters_ReplaceTimedEncounters(encounterData, &v12[2].species, &v12[3].species); WildEncounters_ReplaceRadarEncounters(fieldSystem, encounterData, &v12[0].species, &v12[1].species); @@ -643,7 +643,7 @@ BOOL ov6_022413E4(FieldSystem *fieldSystem, BattleParams **battleParams) v12[i].minLevel = encounterData->grassEncounters.encounters[i].level; } - BOOL nationalDexObtained = Pokedex_IsNationalUnlocked(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); + BOOL nationalDexObtained = Pokedex_IsNationalDexObtained(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); WildEncounters_ReplaceTimedEncounters(encounterData, &v12[2].species, &v12[3].species); WildEncounters_ReplaceRadarEncounters(fieldSystem, encounterData, &v12[0].species, &v12[1].species); @@ -1053,7 +1053,7 @@ static void ov6_02241BAC(const u16 species, const u8 level, const int param2, co } while (TRUE); } - Pokemon_InitWith(newEncounter, species, level, 32, TRUE, newEncounterPersonality, 1, encounterFieldParams->trainerID); + Pokemon_InitWith(newEncounter, species, level, 32, TRUE, newEncounterPersonality, OTID_SET, encounterFieldParams->trainerID); GF_ASSERT(ov6_02242514(param2, encounterFieldParams, newEncounter, battleParams)); Heap_FreeToHeap(newEncounter); diff --git a/src/overlay006/ov6_02242984.c b/src/overlay006/ov6_02242984.c index 7e06cdc799..fbd655101e 100644 --- a/src/overlay006/ov6_02242984.c +++ b/src/overlay006/ov6_02242984.c @@ -43,7 +43,7 @@ int ov6_02242984(FieldSystem *fieldSystem) v2[i] = encounterData->grassEncounters.encounters[i].species; } - BOOL v1 = Pokedex_IsNationalUnlocked(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); + BOOL v1 = Pokedex_IsNationalDexObtained(SaveData_Pokedex(FieldSystem_SaveData(fieldSystem))); ov6_02242F74(sub_0202D814(sub_0202D834(fieldSystem->saveData), 1), v1, fieldSystem->location->mapId, &v2[6], &v2[7]); WildEncounters_ReplaceTimedEncounters(encounterData, &v2[2], &v2[3]); diff --git a/src/overlay006/ov6_02242AF0.c b/src/overlay006/ov6_02242AF0.c index 1e2a935f09..3df02ab1da 100644 --- a/src/overlay006/ov6_02242AF0.c +++ b/src/overlay006/ov6_02242AF0.c @@ -176,7 +176,7 @@ void ov6_02242B58(FieldSystem *fieldSystem, const u16 param1, const u16 param2) v2->unk_00 = ov6_02242E60; } - FieldTask_Start(fieldSystem->unk_10, ov6_02242C5C, v2); + FieldTask_Start(fieldSystem->taskManager, ov6_02242C5C, v2); } u32 ov6_02242C3C(FieldSystem *fieldSystem, const u16 param1) diff --git a/src/overlay006/ov6_02243258.c b/src/overlay006/ov6_02243258.c index f1d97d1d14..a0d9df0535 100644 --- a/src/overlay006/ov6_02243258.c +++ b/src/overlay006/ov6_02243258.c @@ -1011,12 +1011,12 @@ static NARC *ov6_02243F20(void) static void ov6_02243F2C(void) { - sub_0200F174(0, 1, 1, 0x7fff, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x7fff, 6, 1, 4); } static void ov6_02243F50(void) { - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, 4); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, 4); } static void ov6_02243F74(FieldSystem *fieldSystem, int param1) @@ -1496,7 +1496,7 @@ static int ov6_02244548(UnkStruct_ov6_02243FFC *param0) } if ((param0->unk_4C == (FX32_ONE * (96 - 1))) && (param0->unk_50 == (FX32_ONE * (96 + 1)))) { - ov6_02244F20(param0->fieldSystem->unk_08); + ov6_02244F20(param0->fieldSystem->bgConfig); param0->unk_14 = 1; ov6_02244F58(param0); param0->unk_00++; @@ -1532,7 +1532,7 @@ static int ov6_022445EC(UnkStruct_ov6_02243FFC *param0) static int ov6_02244634(UnkStruct_ov6_02243FFC *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00++; } @@ -1687,8 +1687,8 @@ static void ov6_0224481C(UnkStruct_ov6_02243FFC *param0) ov6_02244F80(param0, (FX32_ONE * 0), (FX32_ONE * 192), (FX32_ONE * 1), (FX32_ONE * 192)); ov6_02244F2C(param0); - param0->unk_24 = Bg_GetPriority(param0->fieldSystem->unk_08, 0); - param0->unk_26 = Bg_GetPriority(param0->fieldSystem->unk_08, 3); + param0->unk_24 = Bg_GetPriority(param0->fieldSystem->bgConfig, 0); + param0->unk_26 = Bg_GetPriority(param0->fieldSystem->bgConfig, 3); G2_SetBG1Priority(1); G2_SetBG3Priority(0); @@ -1696,8 +1696,8 @@ static void ov6_0224481C(UnkStruct_ov6_02243FFC *param0) GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, 0); ov6_02244E54(v0, 2, ¶m0->unk_6C); - ov6_02244E7C(param0->fieldSystem->unk_08, v0, 0, ¶m0->unk_68); - ov6_02244EB4(param0->fieldSystem->unk_08, v0, 1, ¶m0->unk_64); + ov6_02244E7C(param0->fieldSystem->bgConfig, v0, 0, ¶m0->unk_68); + ov6_02244EB4(param0->fieldSystem->bgConfig, v0, 1, ¶m0->unk_64); ov6_02244928(param0, v0); NARC_dtor(v0); @@ -1710,7 +1710,7 @@ static void ov6_022448C8(UnkStruct_ov6_02243FFC *param0) GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, 0); sub_0207121C(param0->unk_244); - ov6_02244F20(param0->fieldSystem->unk_08); + ov6_02244F20(param0->fieldSystem->bgConfig); ov6_02244B6C(param0); G2_SetBG0Priority(param0->unk_24); diff --git a/src/overlay006/ov6_02246184.c b/src/overlay006/ov6_02246184.c index 56ffe5e164..30d0691ea2 100644 --- a/src/overlay006/ov6_02246184.c +++ b/src/overlay006/ov6_02246184.c @@ -159,35 +159,35 @@ static void ov6_0224630C(Pokemon *param0, UnkStruct_ov6_0224630C *param1, u32 pa u8 v1; u32 v2; - Pokemon_InitWith(param0, param1->unk_00, param2, 32, 1, param1->unk_38, 1, param1->unk_20); + Pokemon_InitWith(param0, param1->unk_00, param2, 32, TRUE, param1->unk_38, OTID_SET, param1->unk_20); v0 = ov6_022462E4(param4, param3); - Pokemon_SetValue(param0, 119, v0); + Pokemon_SetValue(param0, MON_DATA_NICKNAME_STRBUF, v0); Strbuf_Free(v0); v1 = 1; - Pokemon_SetValue(param0, 77, &v1); - Pokemon_SetValue(param0, 70, ¶m1->unk_04); - Pokemon_SetValue(param0, 71, ¶m1->unk_08); - Pokemon_SetValue(param0, 72, ¶m1->unk_0C); - Pokemon_SetValue(param0, 73, ¶m1->unk_10); - Pokemon_SetValue(param0, 74, ¶m1->unk_14); - Pokemon_SetValue(param0, 75, ¶m1->unk_18); - Pokemon_SetValue(param0, 19, ¶m1->unk_24); - Pokemon_SetValue(param0, 20, ¶m1->unk_28); - Pokemon_SetValue(param0, 21, ¶m1->unk_2C); - Pokemon_SetValue(param0, 22, ¶m1->unk_30); - Pokemon_SetValue(param0, 23, ¶m1->unk_34); - Pokemon_SetValue(param0, 6, ¶m1->unk_3C); + Pokemon_SetValue(param0, MON_DATA_HAS_NICKNAME, &v1); + Pokemon_SetValue(param0, MON_DATA_HP_IV, ¶m1->unk_04); + Pokemon_SetValue(param0, MON_DATA_ATK_IV, ¶m1->unk_08); + Pokemon_SetValue(param0, MON_DATA_DEF_IV, ¶m1->unk_0C); + Pokemon_SetValue(param0, MON_DATA_SPEED_IV, ¶m1->unk_10); + Pokemon_SetValue(param0, MON_DATA_SPATK_IV, ¶m1->unk_14); + Pokemon_SetValue(param0, MON_DATA_SPDEF_IV, ¶m1->unk_18); + Pokemon_SetValue(param0, MON_DATA_COOL, ¶m1->unk_24); + Pokemon_SetValue(param0, MON_DATA_BEAUTY, ¶m1->unk_28); + Pokemon_SetValue(param0, MON_DATA_CUTE, ¶m1->unk_2C); + Pokemon_SetValue(param0, MON_DATA_SMART, ¶m1->unk_30); + Pokemon_SetValue(param0, MON_DATA_TOUGH, ¶m1->unk_34); + Pokemon_SetValue(param0, MON_DATA_HELD_ITEM, ¶m1->unk_3C); v0 = ov6_022462E4(param4, 4 + param3); - Pokemon_SetValue(param0, 145, v0); + Pokemon_SetValue(param0, MON_DATA_OTNAME_STRBUF, v0); Strbuf_Free(v0); - Pokemon_SetValue(param0, 157, ¶m1->unk_40); - Pokemon_SetValue(param0, 12, ¶m1->unk_48); + Pokemon_SetValue(param0, MON_DATA_OT_GENDER, ¶m1->unk_40); + Pokemon_SetValue(param0, MON_DATA_LANGUAGE, ¶m1->unk_48); v2 = MapHeader_GetMapLabelTextID(param5); diff --git a/src/overlay006/ov6_02246A30.c b/src/overlay006/ov6_02246A30.c index 4ad421e0f9..b8b151ff32 100644 --- a/src/overlay006/ov6_02246A30.c +++ b/src/overlay006/ov6_02246A30.c @@ -148,8 +148,8 @@ static BOOL ov6_02246AC8(FieldSystem *fieldSystem) static BOOL ov6_02246AD8(FieldSystem *fieldSystem) { - PokedexData *v0 = SaveData_Pokedex(fieldSystem->saveData); - return sub_02027520(v0); + PokedexData *pokedex = SaveData_Pokedex(fieldSystem->saveData); + return Pokedex_IsObtained(pokedex); } static BOOL ov6_02246AE8(FieldSystem *fieldSystem) diff --git a/src/overlay006/ov6_02246C24.c b/src/overlay006/ov6_02246C24.c index c3dd96b71f..84dbfbdd23 100644 --- a/src/overlay006/ov6_02246C24.c +++ b/src/overlay006/ov6_02246C24.c @@ -64,7 +64,7 @@ void ov6_02246C24(FieldSystem *fieldSystem, const u8 param1) v4->unk_00.z += v5.z; } - FieldTask_Start(fieldSystem->unk_10, ov6_02246C9C, v4); + FieldTask_Start(fieldSystem->taskManager, ov6_02246C9C, v4); } else { GF_ASSERT(FALSE); } diff --git a/src/overlay006/ov6_02246F00.c b/src/overlay006/ov6_02246F00.c index ce3d088b24..bfda633b7d 100644 --- a/src/overlay006/ov6_02246F00.c +++ b/src/overlay006/ov6_02246F00.c @@ -38,7 +38,7 @@ void ov6_02246F00(FieldSystem *fieldSystem, const u8 param1, const u8 param2) v1->unk_01 = param1; v1->unk_02 = 0; - FieldTask_Start(fieldSystem->unk_10, ov6_02246F40, v1); + FieldTask_Start(fieldSystem->taskManager, ov6_02246F40, v1); } else { GF_ASSERT(FALSE); } @@ -84,9 +84,9 @@ static BOOL ov6_02246F40(TaskManager *param0) case 2: if (ov5_021D42F0(fieldSystem->unk_54, 0x1)) { if (v1->unk_01 == 0) { - sub_020057A4(1554, 0); + Sound_StopEffect(1554, 0); } else { - sub_020057A4(1554, 0); + Sound_StopEffect(1554, 0); } Sound_PlayEffect(1521); diff --git a/src/overlay006/ov6_02247100.c b/src/overlay006/ov6_02247100.c index fc84aaffe8..ebe3e39c4c 100644 --- a/src/overlay006/ov6_02247100.c +++ b/src/overlay006/ov6_02247100.c @@ -115,9 +115,9 @@ static int ov6_022471C0(TaskManager *taskMan, FieldSystem *fieldSystem, UnkStruc } if (param2->unk_08 == 2) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 4); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 4); } else { - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, 4); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, 4); } param2->unk_00++; @@ -131,7 +131,7 @@ static int ov6_02247244(TaskManager *taskMan, FieldSystem *fieldSystem, UnkStruc param2->unk_0C = MapObject_StartAnimation(param2->unk_18, Unk_ov6_022495DC); } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return 0; } @@ -215,9 +215,9 @@ static void ov6_0224732C(FieldSystem *fieldSystem, UnkStruct_ov6_02247100 *param static int ov6_02247354(TaskManager *taskMan, FieldSystem *fieldSystem, UnkStruct_ov6_02247100 *param2) { if (param2->unk_08 == 2) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 4); } else { - sub_0200F174(0, 1, 1, 0x7fff, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x7fff, 6, 1, 4); } param2->unk_14 = ov5_021F0EB0(fieldSystem, 4); @@ -235,7 +235,7 @@ static int ov6_022473C8(TaskManager *taskMan, FieldSystem *fieldSystem, UnkStruc param2->unk_0C = MapObject_StartAnimation(param2->unk_18, Unk_ov6_022495DC); } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return 0; } diff --git a/src/overlay006/ov6_02247A0C.c b/src/overlay006/ov6_02247A0C.c index 0a7b02b65b..76005dd066 100644 --- a/src/overlay006/ov6_02247A0C.c +++ b/src/overlay006/ov6_02247A0C.c @@ -13,12 +13,12 @@ #include "font.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_0200DA60.h" #include "unk_0202F108.h" #include "unk_020508D4.h" @@ -142,8 +142,8 @@ void *ov6_02247A90(void *param0) v0->unk_14 = StringTemplate_Default(11); Window_Add(v1, &v0->unk_00, 3, 1, 3, 30, 17, 12, (1 + 10)); - sub_0200DAA4(v1, 3, 1, 11, 0, 11); - Window_Show(&v0->unk_00, 1, 1, 11); + LoadStandardWindowGraphics(v1, 3, 1, 11, 0, 11); + Window_DrawStandardFrame(&v0->unk_00, 1, 1, 11); Window_FillTilemap(&v0->unk_00, 15); v3 = Strbuf_Init(100, 11); @@ -199,7 +199,7 @@ void ov6_02247CC8(void *param0) { UnkStruct_ov6_02247A90 *v0 = param0; - Window_Clear(&v0->unk_00, 1); + Window_EraseStandardFrame(&v0->unk_00, 1); Window_ClearAndCopyToVRAM(&v0->unk_00); Window_Remove(&v0->unk_00); MessageLoader_Free(v0->unk_10); diff --git a/src/overlay006/ov6_02247D30.c b/src/overlay006/ov6_02247D30.c index 57a31edf3f..a47fa3103a 100644 --- a/src/overlay006/ov6_02247D30.c +++ b/src/overlay006/ov6_02247D30.c @@ -62,7 +62,7 @@ void ov6_02247D30(FieldSystem *fieldSystem, const u8 param1) v4->unk_00.z += v5.z; } - FieldTask_Start(fieldSystem->unk_10, ov6_02247DAC, v4); + FieldTask_Start(fieldSystem->taskManager, ov6_02247DAC, v4); } else { GF_ASSERT(FALSE); } diff --git a/src/overlay006/ov6_02247F5C.c b/src/overlay006/ov6_02247F5C.c index 44b9870822..d06a35a8de 100644 --- a/src/overlay006/ov6_02247F5C.c +++ b/src/overlay006/ov6_02247F5C.c @@ -35,7 +35,7 @@ void ov6_02247F5C(FieldSystem *fieldSystem) void ov6_02247FBC(FieldSystem *fieldSystem) { - FieldTask_Start(fieldSystem->unk_10, ov6_02247FD0, NULL); + FieldTask_Start(fieldSystem->taskManager, ov6_02247FD0, NULL); } static BOOL ov6_02247FD0(TaskManager *param0) diff --git a/src/overlay007/communication_club.c b/src/overlay007/communication_club.c index f32503a6a8..35c0d5705c 100644 --- a/src/overlay007/communication_club.c +++ b/src/overlay007/communication_club.c @@ -6,14 +6,8 @@ #include "constants/communication/comm_type.h" #include "consts/sdat.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" - #include "field/field_system.h" #include "gmm/message_bank_unk_0353.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "communication_information.h" @@ -22,20 +16,20 @@ #include "field_comm_manager.h" #include "field_system.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_02033200.h" #include "unk_020363E8.h" #include "unk_020366A0.h" @@ -53,9 +47,9 @@ typedef struct CommClubManager { StringTemplate *unk_50; StringTemplate *unk_54; StringTemplate *strTempMsg; - BmpList *unk_5C; - UIControlData *unk_60; - ResourceMetadata *unk_64; + ListMenu *unk_5C; + Menu *unk_60; + StringList *unk_64; FieldSystem *fieldSystem; CommClubManTaskFunc commClubTask; UnkFuncPtr_ov7_02249C2C_1 unk_70; @@ -90,9 +84,9 @@ static void CommClubMan_SetTask(CommClubManTaskFunc param0); static void CommClubMan_PrintMessage(int param0, BOOL param1); static void CommClubMan_StartBattleClient(CommClubManager *param0); static void ov7_0224A510(CommClubManager *param0); -static void ov7_02249C44(BmpList *param0, u32 param1, u8 param2); -static void ov7_02249C64(BmpList *param0, u32 param1, u8 param2); -static void ov7_02249C94(BmpList *param0, u32 param1, u8 param2); +static void ov7_02249C44(ListMenu *param0, u32 param1, u8 param2); +static void ov7_02249C64(ListMenu *param0, u32 param1, u8 param2); +static void ov7_02249C94(ListMenu *param0, u32 param1, u8 param2); static void CommClubMan_PrintChooseJoinMsg(CommClubManager *param0); static void CommClubMan_DisplayPersonalTrainerInfo(CommClubManager *param0); static void ov7_02249F54(SysTask *param0, void *param1); @@ -106,7 +100,7 @@ static void CommClubMan_Disconnect(void); static void ov7_0224A53C(CommClubManager *param0); static void ov7_0224A5D0(void); static void ov7_0224A64C(CommClubManager *param0); -static void ov7_0224A438(BmpList *param0, u32 param1, u8 param2); +static void ov7_0224A438(ListMenu *param0, u32 param1, u8 param2); static void ov7_0224A72C(SysTask *param0, void *param1); static void ov7_0224A7D0(SysTask *param0, void *param1); static void ov7_0224A97C(SysTask *param0, void *param1); @@ -166,7 +160,7 @@ static void CommClubMan_PrintMessage(int msgId, BOOL format) } if (!Window_IsInUse(&sCommClubMan->msgWindow)) { - FieldMessage_AddWindow(sCommClubMan->fieldSystem->unk_08, &sCommClubMan->msgWindow, 3); + FieldMessage_AddWindow(sCommClubMan->fieldSystem->bgConfig, &sCommClubMan->msgWindow, 3); } FieldMessage_DrawWindow(&sCommClubMan->msgWindow, SaveData_Options(sCommClubMan->fieldSystem->saveData)); @@ -187,7 +181,7 @@ static inline void CommClubMan_PrintMessageFastSpeed(int msgId, BOOL format) } if (!Window_IsInUse(&sCommClubMan->msgWindow)) { - FieldMessage_AddWindow(sCommClubMan->fieldSystem->unk_08, &sCommClubMan->msgWindow, 3); + FieldMessage_AddWindow(sCommClubMan->fieldSystem->bgConfig, &sCommClubMan->msgWindow, 3); } FieldMessage_DrawWindow(&sCommClubMan->msgWindow, SaveData_Options(sCommClubMan->fieldSystem->saveData)); @@ -197,19 +191,19 @@ static inline void CommClubMan_PrintMessageFastSpeed(int msgId, BOOL format) sCommClubMan->printMsgIndex = Text_AddPrinterWithParams(&sCommClubMan->msgWindow, FONT_MESSAGE, sCommClubMan->strBuff[5], 0, 0, TEXT_SPEED_FAST, NULL); } -static void CommClubMan_CreateList(UnkStruct_ov84_02240FA8 param0, u8 param1, u8 param2, u8 param3, u8 param4, u16 param5) +static void CommClubMan_CreateList(ListMenuTemplate param0, u8 param1, u8 param2, u8 param3, u8 param4, u16 param5) { if (!Window_IsInUse(&sCommClubMan->unk_20)) { - Window_Add(sCommClubMan->fieldSystem->unk_08, &sCommClubMan->unk_20, 3, param1, param2, param3, param4, 13, param5); + Window_Add(sCommClubMan->fieldSystem->bgConfig, &sCommClubMan->unk_20, 3, param1, param2, param3, param4, 13, param5); } - Window_Show(&sCommClubMan->unk_20, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(&sCommClubMan->unk_20, 1, 1024 - (18 + 12) - 9, 11); - UnkStruct_ov84_02240FA8 v0 = param0; - v0.unk_00 = sCommClubMan->unk_64; - v0.unk_0C = &sCommClubMan->unk_20; + ListMenuTemplate v0 = param0; + v0.choices = sCommClubMan->unk_64; + v0.window = &sCommClubMan->unk_20; - sCommClubMan->unk_5C = sub_0200112C(&v0, 0, 0, 4); + sCommClubMan->unk_5C = ListMenu_New(&v0, 0, 0, 4); Window_CopyToVRAM(&sCommClubMan->unk_20); } @@ -285,7 +279,7 @@ static void CommClubMan_StartBattleClient(CommClubManager *man) FieldCommMan_StartBattleClient(man->fieldSystem, man->commType, CommClubMan_Regulation()); } -static const UnkStruct_ov84_02240FA8 Unk_ov7_0224ED34 = { +static const ListMenuTemplate Unk_ov7_0224ED34 = { NULL, ov7_02249C44, ov7_02249C64, @@ -307,7 +301,7 @@ static const UnkStruct_ov84_02240FA8 Unk_ov7_0224ED34 = { NULL }; -static void ov7_02249C44(BmpList *param0, u32 param1, u8 param2) +static void ov7_02249C44(ListMenu *param0, u32 param1, u8 param2) { sCommClubMan->unk_98 = 1; @@ -316,20 +310,20 @@ static void ov7_02249C44(BmpList *param0, u32 param1, u8 param2) } } -static void ov7_02249C64(BmpList *param0, u32 param1, u8 param2) +static void ov7_02249C64(ListMenu *param0, u32 param1, u8 param2) { - for (int v0 = 0; v0 < sub_02001504(param0, 3); v0++) { + for (int v0 = 0; v0 < ListMenu_GetAttribute(param0, 3); v0++) { ov7_02249C94(param0, 0, v0); } } -static void ov7_02249C94(BmpList *param0, u32 param1, u8 param2) +static void ov7_02249C94(ListMenu *param0, u32 param1, u8 param2) { int v0 = sub_02033808(); u16 cnt = 0; if (sCommClubMan->unk_5C) { - sub_020014DC(sCommClubMan->unk_5C, &cnt, NULL); + ListMenu_GetListAndCursorPos(sCommClubMan->unk_5C, &cnt, NULL); } cnt += param2; @@ -364,10 +358,10 @@ static void ov7_02249C94(BmpList *param0, u32 param1, u8 param2) static void CommClubMan_PrintChooseJoinMsg(CommClubManager *param0) { if (!Window_IsInUse(&sCommClubMan->unk_30)) { - Window_Add(sCommClubMan->fieldSystem->unk_08, &sCommClubMan->unk_30, 3, 23, 2, 8, 4, 13, (1 + 20 * 5 * 2)); + Window_Add(sCommClubMan->fieldSystem->bgConfig, &sCommClubMan->unk_30, 3, 23, 2, 8, 4, 13, (1 + 20 * 5 * 2)); } - Window_Show(&sCommClubMan->unk_30, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(&sCommClubMan->unk_30, 1, 1024 - (18 + 12) - 9, 11); Window_FillTilemap(&sCommClubMan->unk_30, 15); Window_CopyToVRAM(&sCommClubMan->unk_30); @@ -436,13 +430,13 @@ static void ov7_02249F54(SysTask *task, void *data) if (FieldMessage_FinishedPrinting(sCommClubMan->printMsgIndex)) { int v2; - sCommClubMan->unk_64 = sub_02013A04(16, 4); + sCommClubMan->unk_64 = StringList_New(16, 4); for (v2 = 0; v2 < 16; v2++) { StringTemplate_SetNumber(sCommClubMan->unk_50, 0, v2 + 1, 2, 2, 1); MessageLoader_GetStrbuf(sCommClubMan->msgLoader, pl_msg_00000353_00064, sCommClubMan->strBuff[1]); StringTemplate_Format(sCommClubMan->unk_50, sCommClubMan->strBuff[0], sCommClubMan->strBuff[1]); - sub_02013A6C(sCommClubMan->unk_64, sCommClubMan->strBuff[0], 0); + StringList_AddFromStrbuf(sCommClubMan->unk_64, sCommClubMan->strBuff[0], 0); } CommClubMan_CreateList(Unk_ov7_0224ED34, 1, 2, 20, 5 * 2, 1); @@ -464,7 +458,7 @@ static void ov7_02249FFC(SysTask *task, void *param1) CommClubMan_DestroyList(task, commClubMan); } else { if (!sub_02033870()) { - v0 = sub_02001288(sCommClubMan->unk_5C); + v0 = ListMenu_ProcessInput(sCommClubMan->unk_5C); } else { v0 = 0xffffffff; } @@ -481,7 +475,7 @@ static void ov7_02249FFC(SysTask *task, void *param1) break; default: Sound_PlayEffect(1500); - sub_020014D0(commClubMan->unk_5C, &commClubMan->connectIndex); + ListMenu_CalcTrueCursorPos(commClubMan->unk_5C, &commClubMan->connectIndex); if (sub_02033808() > commClubMan->connectIndex) { ov7_0224A0C8(commClubMan); @@ -598,7 +592,7 @@ static void CommClubTask_WaitConfirmLeaveGroup(SysTask *task, void *data) } if (FieldMessage_FinishedPrinting(sCommClubMan->printMsgIndex)) { - commClubMan->unk_60 = sub_02002100(sCommClubMan->fieldSystem->unk_08, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); + commClubMan->unk_60 = Menu_MakeYesNoChoice(sCommClubMan->fieldSystem->bgConfig, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); CommClubMan_SetTask(CommClubTask_LeaveGroup); } } @@ -609,12 +603,12 @@ static void CommClubTask_LeaveGroup(SysTask *task, void *data) u32 v1; if (ov7_0224A244(task, data)) { - sub_02002154(v0->unk_60, 4); + Menu_DestroyForExit(v0->unk_60, 4); v0->unk_60 = NULL; return; } - v1 = sub_02002114(v0->unk_60, 4); + v1 = Menu_ProcessInputAndHandleExit(v0->unk_60, 4); if (v1 == 0) { CommClubMan_DestroyList(task, v0); @@ -625,7 +619,7 @@ static void CommClubTask_LeaveGroup(SysTask *task, void *data) } } -static const UnkStruct_ov84_02240FA8 Unk_ov7_0224ED14 = { +static const ListMenuTemplate Unk_ov7_0224ED14 = { NULL, NULL, NULL, @@ -647,12 +641,12 @@ static const UnkStruct_ov84_02240FA8 Unk_ov7_0224ED14 = { NULL }; -static void ov7_0224A438(BmpList *param0, u32 param1, u8 param2) +static void ov7_0224A438(ListMenu *param0, u32 param1, u8 param2) { u16 v0 = 0; if (sCommClubMan->unk_5C) { - sub_020014DC(sCommClubMan->unk_5C, &v0, NULL); + ListMenu_GetListAndCursorPos(sCommClubMan->unk_5C, &v0, NULL); } v0 += param2; @@ -695,10 +689,10 @@ static void ov7_0224A53C(CommClubManager *man) ov7_0224A5D0(); if (!Window_IsInUse(&sCommClubMan->unk_30)) { - Window_Add(sCommClubMan->fieldSystem->unk_08, &sCommClubMan->unk_30, 3, 22, 2, 9, 4, 13, (1 + 17 * 6 * 2)); + Window_Add(sCommClubMan->fieldSystem->bgConfig, &sCommClubMan->unk_30, 3, 22, 2, 9, 4, 13, (1 + 17 * 6 * 2)); } - Window_Show(&sCommClubMan->unk_30, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(&sCommClubMan->unk_30, 1, 1024 - (18 + 12) - 9, 11); Window_FillTilemap(&sCommClubMan->unk_30, 15); Window_CopyToVRAM(&sCommClubMan->unk_30); @@ -848,10 +842,10 @@ static void ov7_0224A72C(SysTask *task, void *param1) if (FieldMessage_FinishedPrinting(sCommClubMan->printMsgIndex)) { int netId; - sCommClubMan->unk_64 = sub_02013A04(5, 4); + sCommClubMan->unk_64 = StringList_New(5, 4); for (netId = 0; netId < 5; netId++) { - sub_02013A4C(sCommClubMan->unk_64, sCommClubMan->msgLoader, pl_msg_00000353_00069, 0); + StringList_AddFromMessageBank(sCommClubMan->unk_64, sCommClubMan->msgLoader, pl_msg_00000353_00069, 0); } sCommClubMan->unk_98 = 1; @@ -888,14 +882,14 @@ static void ov7_0224A7D0(SysTask *task, void *param1) if (sCommClubMan->unk_98) { sCommClubMan->unk_98 = 0; - sub_020013AC(sCommClubMan->unk_5C); + ListMenu_Draw(sCommClubMan->unk_5C); - for (v2 = 0; v2 < sub_02001504(sCommClubMan->unk_5C, 3); v2++) { + for (v2 = 0; v2 < ListMenu_GetAttribute(sCommClubMan->unk_5C, 3); v2++) { ov7_0224A438(sCommClubMan->unk_5C, 0, v2); } } - v1 = sub_02001288(commClubMan->unk_5C); + v1 = ListMenu_ProcessInput(commClubMan->unk_5C); if (CommInfo_NewNetworkId() != 0xff) { commClubMan->unk_95 = CommInfo_NewNetworkId(); @@ -972,13 +966,13 @@ static void ov7_0224A97C(SysTask *task, void *param1) int v2; ov7_0224A64C(commClubMan); - sub_02001288(commClubMan->unk_5C); + ListMenu_ProcessInput(commClubMan->unk_5C); - v1 = sub_02002114(commClubMan->unk_60, 4); + v1 = Menu_ProcessInputAndHandleExit(commClubMan->unk_60, 4); if (!CommSys_IsPlayerConnected(commClubMan->unk_95)) { if (v1 == 0xffffffff) { - sub_02002154(commClubMan->unk_60, 4); + Menu_DestroyForExit(commClubMan->unk_60, 4); } if (commClubMan->commType == COMM_TYPE_CONTEST) { @@ -998,7 +992,7 @@ static void ov7_0224A97C(SysTask *task, void *param1) } } else if (CommSys_CheckError() || ov7_0224B4E4()) { if (v1 == 0xffffffff) { - sub_02002154(commClubMan->unk_60, 4); + Menu_DestroyForExit(commClubMan->unk_60, 4); } CommInfo_InitPlayer(commClubMan->unk_95); @@ -1143,10 +1137,10 @@ static void ov7_0224AC48(SysTask *task, void *param1) ov7_0224A64C(commClubMan); sub_02036994(0); - sub_02001288(commClubMan->unk_5C); + ListMenu_ProcessInput(commClubMan->unk_5C); if (FieldMessage_FinishedPrinting(sCommClubMan->printMsgIndex)) { - commClubMan->unk_60 = sub_02002100(sCommClubMan->fieldSystem->unk_08, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); + commClubMan->unk_60 = Menu_MakeYesNoChoice(sCommClubMan->fieldSystem->bgConfig, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); CommClubMan_SetTask(ov7_0224ACA4); } } @@ -1158,13 +1152,13 @@ static void ov7_0224ACA4(SysTask *task, void *param1) int v2; ov7_0224A64C(commClubMan); - sub_02001288(commClubMan->unk_5C); + ListMenu_ProcessInput(commClubMan->unk_5C); - v1 = sub_02002114(commClubMan->unk_60, 4); + v1 = Menu_ProcessInputAndHandleExit(commClubMan->unk_60, 4); if (CommSys_CheckError() || (CommSys_ConnectedCount() != commClubMan->connectedCnt)) { if (v1 == 0xffffffff) { - sub_02002154(commClubMan->unk_60, 4); + Menu_DestroyForExit(commClubMan->unk_60, 4); } commClubMan->unk_60 = NULL; @@ -1308,10 +1302,10 @@ static void ov7_0224AE78(SysTask *task, void *param1) CommClubManager *commClubMan = (CommClubManager *)param1; ov7_0224A64C(commClubMan); - sub_02001288(commClubMan->unk_5C); + ListMenu_ProcessInput(commClubMan->unk_5C); if (FieldMessage_FinishedPrinting(sCommClubMan->printMsgIndex)) { - commClubMan->unk_60 = sub_02002100(sCommClubMan->fieldSystem->unk_08, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); + commClubMan->unk_60 = Menu_MakeYesNoChoice(sCommClubMan->fieldSystem->bgConfig, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); CommClubMan_SetTask(ov7_0224AECC); } } @@ -1323,8 +1317,8 @@ static void ov7_0224AECC(SysTask *task, void *param1) ov7_0224A64C(commClubMan); - sub_02001288(commClubMan->unk_5C); - v1 = sub_02002114(commClubMan->unk_60, 4); + ListMenu_ProcessInput(commClubMan->unk_5C); + v1 = Menu_ProcessInputAndHandleExit(commClubMan->unk_60, 4); if (CommSys_CheckError()) { v1 = 0xfffffffe; @@ -1349,7 +1343,7 @@ static void ov7_0224AF2C(SysTask *task, void *param1) CommClubMan_SetTask(ov7_0224AD68); } else { ov7_0224A64C(commClubMan); - sub_02001288(commClubMan->unk_5C); + ListMenu_ProcessInput(commClubMan->unk_5C); if (CommTiming_IsSyncState(10) && CommTool_IsInitialized()) { CommClubMan_DestroyList(task, commClubMan); @@ -1364,10 +1358,10 @@ static void ov7_0224AF84(SysTask *task, void *param1) u32 v1 = 0xffffffff; ov7_0224A64C(commClubMan); - sub_02001288(commClubMan->unk_5C); + ListMenu_ProcessInput(commClubMan->unk_5C); if (FieldMessage_FinishedPrinting(sCommClubMan->printMsgIndex)) { - commClubMan->unk_60 = sub_02002100(sCommClubMan->fieldSystem->unk_08, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); + commClubMan->unk_60 = Menu_MakeYesNoChoice(sCommClubMan->fieldSystem->bgConfig, &Unk_ov7_0224ED0C, 1024 - (18 + 12) - 9, 11, 4); CommClubMan_SetTask(ov7_0224A97C); } } @@ -1375,14 +1369,14 @@ static void ov7_0224AF84(SysTask *task, void *param1) static void CommClubMan_DestroyList(SysTask *task, CommClubManager *param1) { Window_FillTilemap(&sCommClubMan->msgWindow, 15); - Window_Clear(¶m1->unk_20, 0); - sub_02013A3C(param1->unk_64); - sub_02001384(param1->unk_5C, NULL, NULL); + Window_EraseStandardFrame(¶m1->unk_20, 0); + StringList_Free(param1->unk_64); + ListMenu_Free(param1->unk_5C, NULL, NULL); Window_ClearAndCopyToVRAM(¶m1->unk_20); Window_Remove(¶m1->unk_20); if (param1->unk_97) { - Window_Clear(&sCommClubMan->unk_30, 0); + Window_EraseStandardFrame(&sCommClubMan->unk_30, 0); Window_ClearAndCopyToVRAM(&sCommClubMan->unk_30); Window_Remove(&sCommClubMan->unk_30); param1->unk_97 = 0; diff --git a/src/overlay007/ov7_0224B4E8.c b/src/overlay007/ov7_0224B4E8.c index 65c4e9e821..f5ee46038c 100644 --- a/src/overlay007/ov7_0224B4E8.c +++ b/src/overlay007/ov7_0224B4E8.c @@ -3,31 +3,27 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_decls/struct_02098700_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0202610C.h" #include "field/field_system.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "core_sys.h" #include "font.h" #include "heap.h" +#include "list_menu.h" #include "message.h" #include "party.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0202602C.h" #include "unk_02026150.h" #include "unk_020508D4.h" @@ -35,10 +31,10 @@ #include "unk_0207A2A8.h" typedef struct { - BmpList *unk_00; - BmpList *unk_04; - ResourceMetadata *unk_08; - ResourceMetadata *unk_0C; + ListMenu *unk_00; + ListMenu *unk_04; + StringList *unk_08; + StringList *unk_0C; FieldSystem *fieldSystem; Strbuf *unk_14; Strbuf *unk_18; @@ -65,7 +61,7 @@ typedef struct { u32 unk_04; } UnkStruct_ov7_0224F4D8; -static const UnkStruct_ov84_02240FA8 Unk_ov7_0224F188 = { +static const ListMenuTemplate Unk_ov7_0224F188 = { NULL, NULL, NULL, @@ -91,7 +87,7 @@ static void ov7_0224B4E8(UnkStruct_ov7_0224B4E8 *param0, int param1) { if (Window_IsInUse(¶m0->unk_54) == 0) { Window_Init(¶m0->unk_54); - FieldMessage_AddWindow(param0->fieldSystem->unk_08, ¶m0->unk_54, 3); + FieldMessage_AddWindow(param0->fieldSystem->bgConfig, ¶m0->unk_54, 3); FieldMessage_DrawWindow(¶m0->unk_54, SaveData_Options(param0->fieldSystem->saveData)); } else { sub_0205D988(¶m0->unk_54); @@ -106,7 +102,7 @@ static void ov7_0224B4E8(UnkStruct_ov7_0224B4E8 *param0, int param1) static void ov7_0224B558(UnkStruct_ov7_0224B4E8 *param0, BOOL param1) { if (param1) { - sub_0200E084(¶m0->unk_54, 0); + Window_EraseMessageBox(¶m0->unk_54, 0); Window_ClearAndCopyToVRAM(¶m0->unk_54); } @@ -121,7 +117,7 @@ static void ov7_0224B57C(UnkStruct_ov7_0224B4E8 *param0, int param1) static void ov7_0224B5A8(UnkStruct_ov7_0224B4E8 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; Window *v1 = &(param0->unk_34); BattleRegulation *v2 = sub_0202610C(param0->fieldSystem->saveData, 0); int v3 = 5; @@ -133,42 +129,42 @@ static void ov7_0224B5A8(UnkStruct_ov7_0224B4E8 *param0) if (Window_IsInUse(v1) == 0) { int v4; - param0->unk_08 = sub_02013A04(v3 + 2, 4); + param0->unk_08 = StringList_New(v3 + 2, 4); - Window_Add(param0->fieldSystem->unk_08, v1, 3, 1, 1, 16, (v3 + 2) * 2, 13, 1); - Window_Show(¶m0->unk_34, 1, 1024 - (18 + 12) - 9, 11); - sub_02013A4C(param0->unk_08, param0->unk_68, 123, 12); + Window_Add(param0->fieldSystem->bgConfig, v1, 3, 1, 1, 16, (v3 + 2) * 2, 13, 1); + Window_DrawStandardFrame(¶m0->unk_34, 1, 1024 - (18 + 12) - 9, 11); + StringList_AddFromMessageBank(param0->unk_08, param0->unk_68, 123, 12); for (v4 = 0; v4 < v3; v4++) { ov7_0224B57C(param0, v4); MessageLoader_GetStrbuf(param0->unk_68, 113, param0->unk_1C); StringTemplate_Format(param0->unk_64, param0->unk_20, param0->unk_1C); - sub_02013A6C(param0->unk_08, param0->unk_20, v4); + StringList_AddFromStrbuf(param0->unk_08, param0->unk_20, v4); } - sub_02013A4C(param0->unk_08, param0->unk_68, 114, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_08, param0->unk_68, 114, 0xfffffffe); } v0 = Unk_ov7_0224F188; - v0.unk_10 = v3 + 2; - v0.unk_12 = v3 + 2; - v0.unk_00 = param0->unk_08; - v0.unk_0C = ¶m0->unk_34; - v0.unk_1C = param0; + v0.count = v3 + 2; + v0.maxDisplay = v3 + 2; + v0.choices = param0->unk_08; + v0.window = ¶m0->unk_34; + v0.tmp = param0; - param0->unk_00 = sub_0200112C(&v0, 0, param0->unk_78, 4); + param0->unk_00 = ListMenu_New(&v0, 0, param0->unk_78, 4); Window_CopyToVRAM(¶m0->unk_34); } static void ov7_0224B6AC(UnkStruct_ov7_0224B4E8 *param0) { if (param0->unk_00) { - sub_02001384(param0->unk_00, NULL, NULL); - Window_Clear(¶m0->unk_34, 1); + ListMenu_Free(param0->unk_00, NULL, NULL); + Window_EraseStandardFrame(¶m0->unk_34, 1); Bg_ScheduleTilemapTransfer(param0->unk_34.bgConfig, param0->unk_34.bgLayer); Window_Remove(¶m0->unk_34); - sub_02013A3C(param0->unk_08); + StringList_Free(param0->unk_08); param0->unk_00 = NULL; } @@ -179,11 +175,11 @@ static int ov7_0224B6E8(UnkStruct_ov7_0224B4E8 *param0) int v0; u16 v1; - v0 = sub_02001288(param0->unk_00); - sub_020014DC(param0->unk_00, NULL, ¶m0->unk_78); + v0 = ListMenu_ProcessInput(param0->unk_00); + ListMenu_GetListAndCursorPos(param0->unk_00, NULL, ¶m0->unk_78); v1 = param0->unk_80; - sub_020014D0(param0->unk_00, ¶m0->unk_80); + ListMenu_CalcTrueCursorPos(param0->unk_00, ¶m0->unk_80); if (v1 != param0->unk_80) { Sound_PlayEffect(1500); @@ -219,35 +215,35 @@ static UnkStruct_ov7_0224F4D8 Unk_ov7_0224F4D8[] = { static void ov7_0224B788(UnkStruct_ov7_0224B4E8 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1 = 3, v2; int v3 = 10; int v4 = 9; int v5 = 22; UnkStruct_ov7_0224F4D8 *v6 = Unk_ov7_0224F4D8; - param0->unk_0C = sub_02013A04(v1, 4); + param0->unk_0C = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_44, 3, v5, v3, v4, v1 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - v4 * v1 * 2); - Window_Show(¶m0->unk_44, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_44, 3, v5, v3, v4, v1 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - v4 * v1 * 2); + Window_DrawStandardFrame(¶m0->unk_44, 1, 1024 - (18 + 12) - 9, 11); { int v7; for (v7 = 0; v7 < v1; v7++) { - sub_02013A4C(param0->unk_0C, param0->unk_68, v6->unk_00, v6->unk_04); + StringList_AddFromMessageBank(param0->unk_0C, param0->unk_68, v6->unk_00, v6->unk_04); v6++; } } v0 = Unk_ov7_0224F188; - v0.unk_10 = v1; - v0.unk_12 = v1; - v0.unk_00 = param0->unk_0C; - v0.unk_0C = ¶m0->unk_44; - v0.unk_1C = param0; + v0.count = v1; + v0.maxDisplay = v1; + v0.choices = param0->unk_0C; + v0.window = ¶m0->unk_44; + v0.tmp = param0; - param0->unk_04 = sub_0200112C(&v0, 0, param0->unk_7A, 4); + param0->unk_04 = ListMenu_New(&v0, 0, param0->unk_7A, 4); Window_CopyToVRAM(¶m0->unk_44); } @@ -256,11 +252,11 @@ static int ov7_0224B83C(UnkStruct_ov7_0224B4E8 *param0) int v0; u16 v1; - v0 = sub_02001288(param0->unk_04); - sub_020014DC(param0->unk_04, NULL, ¶m0->unk_7A); + v0 = ListMenu_ProcessInput(param0->unk_04); + ListMenu_GetListAndCursorPos(param0->unk_04, NULL, ¶m0->unk_7A); v1 = param0->unk_82; - sub_020014D0(param0->unk_04, ¶m0->unk_82); + ListMenu_CalcTrueCursorPos(param0->unk_04, ¶m0->unk_82); if (v1 != param0->unk_82) { Sound_PlayEffect(1500); @@ -280,11 +276,11 @@ static int ov7_0224B83C(UnkStruct_ov7_0224B4E8 *param0) } if (param0->unk_04) { - sub_02001384(param0->unk_04, NULL, NULL); - Window_Clear(¶m0->unk_44, 1); + ListMenu_Free(param0->unk_04, NULL, NULL); + Window_EraseStandardFrame(¶m0->unk_44, 1); Bg_ScheduleTilemapTransfer(param0->unk_44.bgConfig, param0->unk_44.bgLayer); Window_Remove(¶m0->unk_44); - sub_02013A3C(param0->unk_0C); + StringList_Free(param0->unk_0C); param0->unk_04 = NULL; } @@ -335,8 +331,8 @@ static void ov7_0224B8DC(UnkStruct_ov7_0224B4E8 *param0) v3 = Strbuf_Init((90 * 2), 4); v4 = ¶m0->unk_24; - Window_Add(param0->fieldSystem->unk_08, v4, 3, 4, 2, 24, 19, 13, 1); - Window_Show(v4, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, v4, 3, 4, 2, 24, 19, 13, 1); + Window_DrawStandardFrame(v4, 1, 1024 - (18 + 12) - 9, 11); Window_FillTilemap(v4, 15); ov7_0224B57C(param0, param0->unk_78 - 1); @@ -420,7 +416,7 @@ static void ov7_0224B8DC(UnkStruct_ov7_0224B4E8 *param0) static void ov7_0224BBA0(UnkStruct_ov7_0224B4E8 *param0) { - Window_Clear(¶m0->unk_24, 1); + Window_EraseStandardFrame(¶m0->unk_24, 1); Bg_ScheduleTilemapTransfer(param0->unk_24.bgConfig, param0->unk_24.bgLayer); Window_Remove(¶m0->unk_24); } diff --git a/src/overlay007/ov7_0224BE9C.c b/src/overlay007/ov7_0224BE9C.c index d5414667db..1c7c34de5a 100644 --- a/src/overlay007/ov7_0224BE9C.c +++ b/src/overlay007/ov7_0224BE9C.c @@ -3,15 +3,10 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02029D04_decl.h" #include "struct_defs/struct_0200C738.h" -#include "struct_defs/struct_02013A04_t.h" #include "overlay007/struct_ov7_0224BEFC_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" @@ -20,20 +15,21 @@ #include "font.h" #include "game_options.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" -#include "unk_0200DA60.h" #include "unk_020298BC.h" #include "unk_0205D8CC.h" @@ -87,8 +83,8 @@ typedef struct { typedef struct { u32 unk_00; Window *unk_04; - BmpList *unk_08; - ResourceMetadata unk_0C[23]; + ListMenu *unk_08; + StringList unk_0C[23]; Strbuf *unk_C4[23]; s32 unk_120; StringTemplate *unk_124; @@ -106,7 +102,7 @@ typedef void (*UnkFuncPtr_ov7_0224C768)(void *, u32); typedef struct { u32 unk_00; - UIControlData *unk_04; + Menu *unk_04; u32 unk_08; } UnkStruct_ov7_0224CC44; @@ -364,9 +360,9 @@ static void ov7_0224C338(UnkStruct_ov7_0224BEFC *param0) static void ov7_0224C35C(UnkStruct_ov7_0224BEFC *param0) { - sub_0200DD0C(param0->unk_14, 3, 1, 10, param0->unk_1B0, param0->unk_18); + LoadMessageBoxGraphics(param0->unk_14, 3, 1, 10, param0->unk_1B0, param0->unk_18); Font_LoadScreenIndicatorsPalette(0, 12 * 32, param0->unk_18); - sub_0200DAA4(param0->unk_14, 3, (1 + (18 + 12)), 11, 0, param0->unk_18); + LoadStandardWindowGraphics(param0->unk_14, 3, (1 + (18 + 12)), 11, 0, param0->unk_18); Font_LoadTextPalette(0, 13 * 32, param0->unk_18); Bg_ClearTilemap(param0->unk_14, 3); } @@ -398,7 +394,7 @@ static void ov7_0224C3EC(UnkStruct_ov7_0224C3EC *param0, BgConfig *param1, u32 p Window_Add(param1, param0->unk_04, 3, 2, 19, 27, 4, 12, ((1 + (18 + 12)) + 9)); Window_FillTilemap(param0->unk_04, 15); - sub_0200E060(param0->unk_04, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(param0->unk_04, 0, 1, 10); param0->unk_00 = 1; } @@ -552,7 +548,7 @@ static void ov7_0224C6DC(UnkStruct_ov7_0224C620 *param0, u32 param1, u32 param2, Text_AddPrinterWithParamsAndColor(param0->unk_04, FONT_SYSTEM, param0->unk_0C, 0, 16 * v0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); } - Window_Show(param0->unk_04, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param0->unk_04, 0, (1 + (18 + 12)), 11); } static void ov7_0224C768(UnkStruct_ov7_0224C768 *param0, BgConfig *param1, u32 param2, const UnkStruct_ov7_0224F1B4 *param3, u32 param4, MessageLoader *param5, void *param6, UnkFuncPtr_ov7_0224C768 param7, CellActorCollection *param8) @@ -564,7 +560,7 @@ static void ov7_0224C768(UnkStruct_ov7_0224C768 *param0, BgConfig *param1, u32 p static const u8 v4[2] = { 8, 136 }; - static UnkStruct_ov84_02240FA8 v5 = { + static ListMenuTemplate v5 = { NULL, NULL, NULL, @@ -608,25 +604,25 @@ static void ov7_0224C768(UnkStruct_ov7_0224C768 *param0, BgConfig *param1, u32 p StringTemplate_Format(param0->unk_124, param0->unk_128, v1); param0->unk_C4[v0] = Strbuf_Clone(param0->unk_128, param2); - param0->unk_0C[v0].unk_00 = param0->unk_C4[v0]; - param0->unk_0C[v0].unk_04 = v0; + param0->unk_0C[v0].entry = param0->unk_C4[v0]; + param0->unk_0C[v0].index = v0; } param0->unk_C4[param4] = MessageLoader_GetNewStrbuf(param5, 19); - param0->unk_0C[param4].unk_00 = param0->unk_C4[param4]; - param0->unk_0C[param4].unk_04 = param4; + param0->unk_0C[param4].entry = param0->unk_C4[param4]; + param0->unk_0C[param4].index = param4; StringTemplate_Free(param0->unk_124); Strbuf_Free(param0->unk_128); Strbuf_Free(v1); - v5.unk_0C = param0->unk_04; - v5.unk_10 = param0->unk_120; - v5.unk_00 = param0->unk_0C; + v5.window = param0->unk_04; + v5.count = param0->unk_120; + v5.choices = param0->unk_0C; - param0->unk_08 = sub_0200112C(&v5, 0, 0, param2); + param0->unk_08 = ListMenu_New(&v5, 0, 0, param2); - Window_Show(param0->unk_04, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param0->unk_04, 0, (1 + (18 + 12)), 11); for (v0 = 0; v0 < 4; v0++) { param0->unk_138[v0] = SpriteResourceCollection_New(1, v0, param2); @@ -668,7 +664,7 @@ static void ov7_0224C934(UnkStruct_ov7_0224C768 *param0) Strbuf_Free(param0->unk_C4[v0]); } - sub_02001384(param0->unk_08, NULL, NULL); + ListMenu_Free(param0->unk_08, NULL, NULL); Window_ClearAndCopyToVRAM(param0->unk_04); Window_Remove(param0->unk_04); Windows_Delete(param0->unk_04, 1); @@ -681,10 +677,10 @@ static u32 ov7_0224C9A4(UnkStruct_ov7_0224C768 *param0) u32 v0; u16 v1; - v0 = sub_02001288(param0->unk_08); + v0 = ListMenu_ProcessInput(param0->unk_08); if (v0 == 0xffffffff) { - sub_020014D0(param0->unk_08, &v1); + ListMenu_CalcTrueCursorPos(param0->unk_08, &v1); if (param0->unk_12C != v1) { param0->unk_12C = v1; @@ -706,7 +702,7 @@ static void ov7_0224CA0C(UnkStruct_ov7_0224C768 *param0) { param0->unk_134(param0->unk_130, param0->unk_12C); - Window_Show(param0->unk_04, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param0->unk_04, 0, (1 + (18 + 12)), 11); ov7_0224CB70(param0); } @@ -747,7 +743,7 @@ static void ov7_0224CB70(UnkStruct_ov7_0224C768 *param0) { u16 v0; - sub_020014DC(param0->unk_08, &v0, NULL); + ListMenu_GetListAndCursorPos(param0->unk_08, &v0, NULL); if (v0 <= 0) { CellActor_SetDrawFlag(param0->unk_158[0], 0); @@ -801,7 +797,7 @@ static void ov7_0224CC44(UnkStruct_ov7_0224CC44 *param0, BgConfig *param1, u32 p return; } - param0->unk_04 = sub_02002100(param1, &v0, (1 + (18 + 12)), 11, param2); + param0->unk_04 = Menu_MakeYesNoChoice(param1, &v0, (1 + (18 + 12)), 11, param2); param0->unk_08 = param2; param0->unk_00 = 1; } @@ -819,7 +815,7 @@ static u32 ov7_0224CC78(UnkStruct_ov7_0224CC44 *param0) { u32 v0; - v0 = sub_02002114(param0->unk_04, param0->unk_08); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_04, param0->unk_08); return v0; } diff --git a/src/overlay007/ov7_0224CD28.c b/src/overlay007/ov7_0224CD28.c index 41786b85d9..f083f78305 100644 --- a/src/overlay007/ov7_0224CD28.c +++ b/src/overlay007/ov7_0224CD28.c @@ -5,9 +5,7 @@ #include "consts/game_records.h" -#include "struct_decls/struct_0200112C_decl.h" #include "struct_decls/struct_020508D4_decl.h" -#include "struct_defs/struct_02081CF4.h" #include "field/field_system.h" #include "overlay005/ov5_021D0D80.h" @@ -15,7 +13,6 @@ #include "overlay007/struct_ov7_0224D008.h" #include "overlay007/struct_ov7_0224F2EC.h" #include "overlay007/struct_ov7_0224F358.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" @@ -30,25 +27,25 @@ #include "heap.h" #include "item.h" #include "journal.h" +#include "list_menu.h" #include "map_header.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "player_avatar.h" +#include "render_window.h" #include "save_player.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200A328.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_0202854C.h" #include "unk_0202C9F4.h" #include "unk_0202D05C.h" @@ -78,8 +75,8 @@ static u8 ov7_0224D620(UnkStruct_ov7_0224D008 *param0); static u8 ov7_0224DC84(UnkStruct_ov7_0224D008 *param0); static u8 ov7_0224E950(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param1); static void ov7_0224D6BC(UnkStruct_ov7_0224D008 *param0); -static void ov7_0224D85C(BmpList *param0, u32 param1, u8 param2); -static void ov7_0224D9B8(BmpList *param0, u32 param1, u8 param2); +static void ov7_0224D85C(ListMenu *param0, u32 param1, u8 param2); +static void ov7_0224D9B8(ListMenu *param0, u32 param1, u8 param2); static void ov7_0224DAF8(UnkStruct_ov7_0224D008 *param0, u8 param1); static u8 ov7_0224DE94(UnkStruct_ov7_0224D008 *param0); static u8 ov7_0224DFB0(UnkStruct_ov7_0224D008 *param0); @@ -188,7 +185,7 @@ void ov7_0224CDA4(TaskManager *param0, FieldSystem *fieldSystem, u16 *param2, u8 { UnkStruct_ov7_0224D008 *v0 = ov7_0224CD88(); - v0->unk_00 = fieldSystem->unk_08; + v0->unk_00 = fieldSystem->bgConfig; v0->unk_298 = Strbuf_Init((24 * 2 * 2), 11); v0->unk_270 = SaveData_GetTrainerInfo(fieldSystem->saveData); @@ -323,51 +320,51 @@ static void ov7_0224D018(UnkStruct_ov7_0224D008 *param0) static void ov7_0224D040(UnkStruct_ov7_0224D008 *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; u8 v1; if (param0->unk_2A9 == 0) { v1 = 3; - param0->unk_84 = sub_02013A04(v1, 11); + param0->unk_84 = StringList_New(v1, 11); - sub_02013A4C(param0->unk_84, param0->unk_88, 15, 2); - sub_02013A4C(param0->unk_84, param0->unk_88, 16, 14); - sub_02013A4C(param0->unk_84, param0->unk_88, 17, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 15, 2); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 16, 14); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 17, 0xfffffffe); Window_Add(param0->unk_00, ¶m0->unk_08[0], 3, 1, 1, 13, 6, 13, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (13 * 6))); } else if (param0->unk_2A9 == 3) { v1 = 2; - param0->unk_84 = sub_02013A04(v1, 11); + param0->unk_84 = StringList_New(v1, 11); - sub_02013A4C(param0->unk_84, param0->unk_88, 29, 2); - sub_02013A4C(param0->unk_84, param0->unk_88, 30, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 29, 2); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 30, 0xfffffffe); Window_Add(param0->unk_00, ¶m0->unk_08[0], 3, 23, 13, 7, 4, 13, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (13 * 6))); } else { v1 = 2; - param0->unk_84 = sub_02013A04(v1, 11); + param0->unk_84 = StringList_New(v1, 11); - sub_02013A4C(param0->unk_84, param0->unk_88, 15, 2); - sub_02013A4C(param0->unk_84, param0->unk_88, 17, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 15, 2); + StringList_AddFromMessageBank(param0->unk_84, param0->unk_88, 17, 0xfffffffe); Window_Add(param0->unk_00, ¶m0->unk_08[0], 3, 1, 1, 13, 4, 13, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (13 * 6))); } - v0.unk_00 = param0->unk_84; - v0.unk_04 = ¶m0->unk_08[0]; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = v1; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.choices = param0->unk_84; + v0.window = ¶m0->unk_08[0]; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = v1; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; - sub_0200DAA4(param0->unk_00, 3, 1024 - (18 + 12) - 9, 11, 0, 11); - Window_Show(¶m0->unk_08[0], 1, 1024 - (18 + 12) - 9, 11); + LoadStandardWindowGraphics(param0->unk_00, 3, 1024 - (18 + 12) - 9, 11, 0, 11); + Window_DrawStandardFrame(¶m0->unk_08[0], 1, 1024 - (18 + 12) - 9, 11); - param0->unk_80 = sub_02001B7C(&v0, 8, 0, 0, 11, PAD_BUTTON_B); + param0->unk_80 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 11, PAD_BUTTON_B); } static u8 ov7_0224D1EC(UnkStruct_ov7_0224D008 *param0) { - u32 v0 = sub_02001BE0(param0->unk_80); + u32 v0 = Menu_ProcessInput(param0->unk_80); switch (v0) { case 0xffffffff: @@ -384,10 +381,10 @@ static u8 ov7_0224D1EC(UnkStruct_ov7_0224D008 *param0) static void ov7_0224D21C(UnkStruct_ov7_0224D008 *param0) { - Window_Clear(¶m0->unk_08[0], 1); + Window_EraseStandardFrame(¶m0->unk_08[0], 1); Window_ClearAndCopyToVRAM(¶m0->unk_08[0]); - sub_02001BC4(param0->unk_80, NULL); - sub_02013A3C(param0->unk_84); + Menu_Free(param0->unk_80, NULL); + StringList_Free(param0->unk_84); Window_Remove(¶m0->unk_08[0]); } @@ -400,7 +397,7 @@ static u8 ov7_0224D250(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param1) if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { void *v0; - sub_0200E084(¶m1->unk_08[1], 0); + Window_EraseMessageBox(¶m1->unk_08[1], 0); Window_Remove(¶m1->unk_08[1]); MessageLoader_Free(param1->unk_88); StringTemplate_Free(param1->unk_8C); @@ -471,7 +468,7 @@ static void ov7_0224D44C(UnkStruct_ov7_0224D008 *param0) { u32 v0; - Window_Clear(¶m0->unk_08[2], 1); + Window_EraseStandardFrame(¶m0->unk_08[2], 1); for (v0 = 0; v0 < 6; v0++) { Window_ClearAndCopyToVRAM(¶m0->unk_08[v0]); @@ -499,8 +496,8 @@ static void ov7_0224D474(UnkStruct_ov7_0224D008 *param0) Graphics_LoadPaletteFromOpenNARC(v0, 1, 0, 0, 32, 11); } - sub_0200DAA4(param0->unk_00, 3, (1 + (18 + 12)), 11, 0, 11); - sub_0200DD0C(param0->unk_00, 3, 1, 10, Options_Frame(param0->unk_278), 11); + LoadStandardWindowGraphics(param0->unk_00, 3, (1 + (18 + 12)), 11, 0, 11); + LoadMessageBoxGraphics(param0->unk_00, 3, 1, 10, Options_Frame(param0->unk_278), 11); NARC_dtor(v0); } @@ -554,7 +551,7 @@ static u8 ov7_0224D620(UnkStruct_ov7_0224D008 *param0) return 4; } -static const UnkStruct_ov84_02240FA8 Unk_ov7_0224F308 = { +static const ListMenuTemplate Unk_ov7_0224F308 = { NULL, ov7_0224D85C, ov7_0224D9B8, @@ -591,7 +588,7 @@ static void ov7_0224D6BC(UnkStruct_ov7_0224D008 *param0) { MessageLoader *v0; Strbuf *v1; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; u32 v3; u32 v4; MessageLoader *v5; @@ -606,28 +603,28 @@ static void ov7_0224D6BC(UnkStruct_ov7_0224D008 *param0) v0 = MessageLoader_Init(0, 26, 12, 11); } - param0->unk_7C = sub_02013A04(param0->unk_294 + 1, 11); + param0->unk_7C = StringList_New(param0->unk_294 + 1, 11); for (v3 = 0; v3 < param0->unk_294; v3++) { v4 = ov7_0224D698(param0, param0->unk_290[v3]); if ((v4 <= 420) && (v4 >= 328)) { v1 = MessageLoader_GetNewStrbuf(v5, Item_MoveForTMHM(v4)); - sub_02013A6C(param0->unk_7C, v1, param0->unk_290[v3]); + StringList_AddFromStrbuf(param0->unk_7C, v1, param0->unk_290[v3]); Strbuf_Free(v1); v6 = 1; } else { v1 = MessageLoader_GetNewStrbuf(v0, v4); - sub_02013A6C(param0->unk_7C, v1, param0->unk_290[v3]); + StringList_AddFromStrbuf(param0->unk_7C, v1, param0->unk_290[v3]); Strbuf_Free(v1); } } if (v6) { - sub_02013A4C(param0->unk_7C, param0->unk_88, 26, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_7C, param0->unk_88, 26, 0xfffffffe); } else { - sub_02013A4C(param0->unk_7C, param0->unk_88, 8, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_7C, param0->unk_88, 8, 0xfffffffe); } MessageLoader_Free(v0); @@ -639,22 +636,22 @@ static void ov7_0224D6BC(UnkStruct_ov7_0224D008 *param0) v2 = Unk_ov7_0224F308; if ((v4 <= 420) && (v4 >= 328)) { - v2.unk_15 = 35; + v2.textXOffset = 35; } else { - v2.unk_15 = 0; + v2.textXOffset = 0; } - v2.unk_00 = param0->unk_7C; - v2.unk_0C = ¶m0->unk_08[0]; - v2.unk_10 = param0->unk_294 + 1; - v2.unk_1C = (void *)param0; + v2.choices = param0->unk_7C; + v2.window = ¶m0->unk_08[0]; + v2.count = param0->unk_294 + 1; + v2.tmp = (void *)param0; - param0->unk_78 = sub_0200112C(&v2, 0, 0, 11); + param0->unk_78 = ListMenu_New(&v2, 0, 0, 11); } -static void ov7_0224D85C(BmpList *param0, u32 param1, u8 param2) +static void ov7_0224D85C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov7_0224D008 *v0 = (UnkStruct_ov7_0224D008 *)sub_02001504(param0, 19); + UnkStruct_ov7_0224D008 *v0 = (UnkStruct_ov7_0224D008 *)ListMenu_GetAttribute(param0, 19); if (param2 != 1) { Sound_PlayEffect(1592); @@ -698,7 +695,7 @@ static void ov7_0224D85C(BmpList *param0, u32 param1, u8 param2) u32 v4; u16 v5, v6; - sub_020014DC(param0, &v5, &v6); + ListMenu_GetListAndCursorPos(param0, &v5, &v6); if (v5 == 0) { CellActor_SetDrawFlag(v0->unk_25C[0], 0); @@ -706,7 +703,7 @@ static void ov7_0224D85C(BmpList *param0, u32 param1, u8 param2) CellActor_SetDrawFlag(v0->unk_25C[0], 1); } - v4 = sub_02001504(param0, 2); + v4 = ListMenu_GetAttribute(param0, 2); if ((v4 > 7) && (v4 > v5 + 7)) { CellActor_SetDrawFlag(v0->unk_25C[1], 1); @@ -717,9 +714,9 @@ static void ov7_0224D85C(BmpList *param0, u32 param1, u8 param2) Window_ScheduleCopyToVRAM(&v0->unk_08[1]); } -static void ov7_0224D9B8(BmpList *param0, u32 param1, u8 param2) +static void ov7_0224D9B8(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov7_0224D008 *v0 = (UnkStruct_ov7_0224D008 *)sub_02001504(param0, 19); + UnkStruct_ov7_0224D008 *v0 = (UnkStruct_ov7_0224D008 *)ListMenu_GetAttribute(param0, 19); if (param1 != 0xfffffffe) { Strbuf *v1; @@ -772,7 +769,7 @@ static void ov7_0224DAF8(UnkStruct_ov7_0224D008 *param0, u8 param1) if (param0->unk_2A9 == 3) { if (param1 == 0) { Window_FillTilemap(¶m0->unk_08[2], 15); - Window_Show( + Window_DrawStandardFrame( ¶m0->unk_08[2], 1, (1 + (18 + 12)), 11); } else { Window_FillRectWithColor(¶m0->unk_08[2], 15, 0, 0, (9 * 8), 16); @@ -791,7 +788,7 @@ static void ov7_0224DAF8(UnkStruct_ov7_0224D008 *param0, u8 param1) } else { if (param1 == 0) { Window_FillTilemap(¶m0->unk_08[2], 15); - Window_Show(¶m0->unk_08[2], 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_08[2], 1, (1 + (18 + 12)), 11); v1 = MessageLoader_GetNewStrbuf(param0->unk_88, 18); @@ -823,9 +820,9 @@ static u8 ov7_0224DC84(UnkStruct_ov7_0224D008 *param0) u32 v0; u16 v1, v2; - sub_020014DC(param0->unk_78, NULL, &v1); - v0 = sub_02001288(param0->unk_78); - sub_020014DC(param0->unk_78, NULL, &v2); + ListMenu_GetListAndCursorPos(param0->unk_78, NULL, &v1); + v0 = ListMenu_ProcessInput(param0->unk_78); + ListMenu_GetListAndCursorPos(param0->unk_78, NULL, &v2); if (v1 != v2) { SpriteActor_SetPositionXY(param0->unk_25C[2], (176 - 4), 24 + v2 * 16); @@ -835,8 +832,8 @@ static u8 ov7_0224DC84(UnkStruct_ov7_0224D008 *param0) case 0xffffffff: break; case 0xfffffffe: - sub_02001384(param0->unk_78, NULL, NULL); - sub_02013A3C(param0->unk_7C); + ListMenu_Free(param0->unk_78, NULL, NULL); + StringList_Free(param0->unk_7C); ov7_0224D44C(param0); ov7_0224D5D8(param0); Bg_ClearTilemap(param0->unk_00, 1); @@ -857,7 +854,7 @@ static u8 ov7_0224DC84(UnkStruct_ov7_0224D008 *param0) Window_FillTilemap(¶m0->unk_08[5], 15); Window_ClearAndCopyToVRAM(¶m0->unk_08[1]); - sub_0200E060(¶m0->unk_08[5], 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_08[5], 0, 1, 10); param0->unk_2AA = (u16)v0; param0->unk_2AC = 1; @@ -946,7 +943,7 @@ static void ov7_0224DED4(UnkStruct_ov7_0224D008 *param0) } Window_FillTilemap(¶m0->unk_08[4], 15); - Window_Show(¶m0->unk_08[4], 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_08[4], 1, (1 + (18 + 12)), 11); v0 = Strbuf_Init((12 * 2), 11); v1 = MessageLoader_GetNewStrbuf(param0->unk_88, 20); @@ -970,8 +967,8 @@ static u8 ov7_0224DFB0(UnkStruct_ov7_0224D008 *param0) if (gCoreSys.pressedKeys & PAD_BUTTON_A) { CellActor_SetDrawFlag(param0->unk_25C[0], 0); CellActor_SetDrawFlag(param0->unk_25C[1], 0); - Window_Clear(¶m0->unk_08[4], 1); - Window_Clear(¶m0->unk_08[3], 1); + Window_EraseStandardFrame(¶m0->unk_08[4], 1); + Window_EraseStandardFrame(¶m0->unk_08[3], 1); Window_FillTilemap(¶m0->unk_08[5], 15); Sound_PlayEffect(1500); @@ -979,9 +976,9 @@ static u8 ov7_0224DFB0(UnkStruct_ov7_0224D008 *param0) } if (gCoreSys.pressedKeys & PAD_BUTTON_B) { - Window_Clear(¶m0->unk_08[4], 1); - Window_Clear(¶m0->unk_08[3], 1); - sub_0200E084(¶m0->unk_08[5], 0); + Window_EraseStandardFrame(¶m0->unk_08[4], 1); + Window_EraseStandardFrame(¶m0->unk_08[3], 1); + Window_EraseMessageBox(¶m0->unk_08[5], 0); ov7_0224EB38(param0, 0); @@ -1077,7 +1074,7 @@ static void ov7_0224E28C(UnkStruct_ov7_0224D008 *param0, u8 param1) Window_FillTilemap(¶m0->unk_08[3], 15); if (param1 == 0) { - Window_Show(¶m0->unk_08[3], 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_08[3], 1, (1 + (18 + 12)), 11); } v0 = Strbuf_Init(24, 11); @@ -1111,13 +1108,13 @@ static u8 ov7_0224E3A0(UnkStruct_ov7_0224D008 *param0) return 7; } - param0->unk_80 = sub_02002100(param0->unk_00, &Unk_ov7_0224F2CC, (1 + (18 + 12)), 11, 11); + param0->unk_80 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_ov7_0224F2CC, (1 + (18 + 12)), 11, 11); return 8; } static u8 ov7_0224E3D8(UnkStruct_ov7_0224D008 *param0) { - switch (sub_02002114(param0->unk_80, 11)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_80, 11)) { case 0: { Strbuf *v0; @@ -1163,7 +1160,7 @@ static u8 ov7_0224E3D8(UnkStruct_ov7_0224D008 *param0) Sound_PlayEffect(1604); return 9; case 0xfffffffe: - sub_0200E084(¶m0->unk_08[5], 0); + Window_EraseMessageBox(¶m0->unk_08[5], 0); ov7_0224EB38(param0, 0); CellActor_SetDrawFlag(param0->unk_25C[0], param0->unk_26C[0]); CellActor_SetDrawFlag(param0->unk_25C[1], param0->unk_26C[1]); @@ -1243,7 +1240,7 @@ static u8 ov7_0224E6B8(UnkStruct_ov7_0224D008 *param0) } } - sub_0200E084(¶m0->unk_08[5], 0); + Window_EraseMessageBox(¶m0->unk_08[5], 0); ov7_0224EB38(param0, 0); CellActor_SetDrawFlag(param0->unk_25C[0], param0->unk_26C[0]); CellActor_SetDrawFlag(param0->unk_25C[1], param0->unk_26C[1]); @@ -1263,7 +1260,7 @@ static u8 ov7_0224E7C8(UnkStruct_ov7_0224D008 *param0) } if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_08[5], 0); + Window_EraseMessageBox(¶m0->unk_08[5], 0); ov7_0224EB38(param0, 0); CellActor_SetDrawFlag(param0->unk_25C[0], param0->unk_26C[0]); CellActor_SetDrawFlag(param0->unk_25C[1], param0->unk_26C[1]); @@ -1398,7 +1395,7 @@ static u8 ov7_0224E950(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param1) return 19; } - FieldMessage_AddWindow(fieldSystem->unk_08, ¶m1->unk_08[1], 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, ¶m1->unk_08[1], 3); FieldMessage_DrawWindow(¶m1->unk_08[1], param1->unk_278); { @@ -1437,7 +1434,7 @@ static void ov7_0224EA54(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param StringTemplate_Format(param1->unk_8C, param1->unk_298, v0); Strbuf_Free(v0); - FieldMessage_AddWindow(fieldSystem->unk_08, ¶m1->unk_08[1], 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, ¶m1->unk_08[1], 3); FieldMessage_DrawWindow(¶m1->unk_08[1], param1->unk_278); param1->unk_2A4 = FieldMessage_Print(¶m1->unk_08[1], param1->unk_298, param1->unk_278, 1); @@ -1531,7 +1528,7 @@ static void ov7_0224EC38(TaskManager *param0) FieldSystem *fieldSystem; UnkStruct_ov7_0224D008 *v1; - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } @@ -1557,11 +1554,11 @@ static void ov7_0224EC38(TaskManager *param0) static u8 ov7_0224EC9C(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param1) { - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return 18; } - FieldMessage_AddWindow(fieldSystem->unk_08, ¶m1->unk_08[1], 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, ¶m1->unk_08[1], 3); FieldMessage_DrawWindow(¶m1->unk_08[1], param1->unk_278); { diff --git a/src/overlay008/ov8_02249960.c b/src/overlay008/ov8_02249960.c index 2f949c3ac9..92eaf2212a 100644 --- a/src/overlay008/ov8_02249960.c +++ b/src/overlay008/ov8_02249960.c @@ -45,6 +45,7 @@ #include "map_object_move.h" #include "message.h" #include "player_avatar.h" +#include "render_window.h" #include "save_player.h" #include "savedata_misc.h" #include "script_manager.h" @@ -53,7 +54,6 @@ #include "sys_task_manager.h" #include "trainer_info.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0201D15C.h" #include "unk_02027F50.h" #include "unk_020508D4.h" @@ -367,13 +367,13 @@ void ov8_0224997C(FieldSystem *fieldSystem) v6->unk_00 = 0; if (v4 == 239) { - FieldTask_Start(fieldSystem->unk_10, ov8_02249CD8, v6); + FieldTask_Start(fieldSystem->taskManager, ov8_02249CD8, v6); v8->unk_00 = 2; } else if (v4 == 240) { - FieldTask_Start(fieldSystem->unk_10, ov8_02249B74, v6); + FieldTask_Start(fieldSystem->taskManager, ov8_02249B74, v6); v8->unk_00 = 1; } else if (v4 == 241) { - FieldTask_Start(fieldSystem->unk_10, ov8_02249A94, v6); + FieldTask_Start(fieldSystem->taskManager, ov8_02249A94, v6); v8->unk_00 = 0; } else { GF_ASSERT(FALSE); @@ -449,7 +449,7 @@ static BOOL ov8_02249A94(TaskManager *taskMan) } break; case 2: ov5_021EF388(0, (FX32_ONE * 16 * 0), fieldSystem->unk_A0); - sub_020057A4(1626, 0); + Sound_StopEffect(1626, 0); (v2->unk_00)++; break; case 3: @@ -536,7 +536,7 @@ static BOOL ov8_02249B74(TaskManager *taskMan) break; case 4: ov5_021EF388(0, (FX32_ONE * 16 * 2), fieldSystem->unk_A0); - sub_020057A4(1626, 0); + Sound_StopEffect(1626, 0); (v2->unk_00)++; break; case 5: @@ -587,7 +587,7 @@ static BOOL ov8_02249CD8(TaskManager *taskMan) } break; case 2: ov5_021EF388(0, (FX32_ONE * 16 * 4), fieldSystem->unk_A0); - sub_020057A4(1626, 0); + Sound_StopEffect(1626, 0); (v2->unk_00)++; break; case 3: @@ -762,10 +762,10 @@ void ov8_02249FB8(FieldSystem *fieldSystem) PlayerAvatar_PosVectorOut(fieldSystem->playerAvatar, &v1); if (v1.y == (FX32_ONE * 16 * 0)) { - FieldTask_Start(fieldSystem->unk_10, ov8_0224A018, v0); + FieldTask_Start(fieldSystem->taskManager, ov8_0224A018, v0); v3->unk_00 = 1; } else { - FieldTask_Start(fieldSystem->unk_10, ov8_0224A0E8, v0); + FieldTask_Start(fieldSystem->taskManager, ov8_0224A0E8, v0); v3->unk_00 = 0; } } @@ -795,7 +795,7 @@ static BOOL ov8_0224A018(TaskManager *taskMan) if (v3.y >= (FX32_ONE * 16 * 10)) { v3.y = (FX32_ONE * 16 * 10); - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v2->unk_00)++; } @@ -840,7 +840,7 @@ static BOOL ov8_0224A0E8(TaskManager *taskMan) if (v3.y <= (FX32_ONE * 0)) { v3.y = (FX32_ONE * 0); - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v2->unk_00)++; } @@ -1363,7 +1363,7 @@ static BOOL ov8_0224A4FC(TaskManager *taskMan) if (v5.y >= v3->unk_EC) { v5.y = v3->unk_EC; v3->unk_10[v3->unk_E8] = Unk_ov8_0224CB68[v3->unk_E8].unk_0B; - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v2->unk_00)++; } } else if (v3->unk_F0 == 1) { @@ -1371,7 +1371,7 @@ static BOOL ov8_0224A4FC(TaskManager *taskMan) if (v5.y <= v3->unk_EC) { v5.y = v3->unk_EC; - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v2->unk_00)++; } } else { @@ -1434,7 +1434,7 @@ static BOOL ov8_0224A620(TaskManager *taskMan) if (v6.x >= v4->unk_EC) { v6.x = v4->unk_EC; - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v3->unk_00)++; } else { if (LocalMapObj_IsAnimationSet(v1) == 1) { @@ -1445,7 +1445,7 @@ static BOOL ov8_0224A620(TaskManager *taskMan) if (v6.x <= v4->unk_EC) { v6.x = v4->unk_EC; - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v3->unk_00)++; } else { if (LocalMapObj_IsAnimationSet(v1) == 1) { @@ -1516,7 +1516,7 @@ static BOOL ov8_0224A770(TaskManager *taskMan) if (v6.z >= v4->unk_EC) { v6.z = v4->unk_EC; - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v3->unk_00)++; } else { if (LocalMapObj_IsAnimationSet(v1) == 1) { @@ -1527,7 +1527,7 @@ static BOOL ov8_0224A770(TaskManager *taskMan) if (v6.z <= v4->unk_EC) { v6.z = v4->unk_EC; - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); (v3->unk_00)++; } else { if (LocalMapObj_IsAnimationSet(v1) == 1) { @@ -2207,7 +2207,7 @@ void ov8_0224AD34(FieldSystem *fieldSystem, const u8 param1) v1->unk_13 = v4; Sound_PlayEffect(1599); - FieldTask_Start(fieldSystem->unk_10, ov8_0224ADE8, v0); + FieldTask_Start(fieldSystem->taskManager, ov8_0224ADE8, v0); } } @@ -2766,7 +2766,7 @@ static BOOL ov8_0224B3D4(TaskManager *param0) ov8_0224AF84(v4); if (v0 == 1) { - sub_020057A4(1355, 0); + Sound_StopEffect(1355, 0); Sound_PlayEffect(1507); v2->unk_00++; } @@ -2842,10 +2842,10 @@ static BOOL ov8_0224B3D4(TaskManager *param0) v2->unk_04 = 0; v2->unk_00++; - sub_020057A4(1593, 0); + Sound_StopEffect(1593, 0); MessageLoader_GetStrbuf(v2->unk_48, 12, v2->unk_4C); - FieldMessage_AddWindow(fieldSystem->unk_08, v2->unk_44, 3); - sub_0200E084(v2->unk_44, 0); + FieldMessage_AddWindow(fieldSystem->bgConfig, v2->unk_44, 3); + Window_EraseMessageBox(v2->unk_44, 0); FieldMessage_DrawWindow(v2->unk_44, SaveData_Options(fieldSystem->saveData)); v2->unk_40 = FieldMessage_Print(v2->unk_44, v2->unk_4C, SaveData_Options(fieldSystem->saveData), 1); @@ -2863,7 +2863,7 @@ static BOOL ov8_0224B3D4(TaskManager *param0) int v10 = Player_GetZPos(fieldSystem->playerAvatar); ov8_0224B240(&v2->unk_1C, v9, v10); - sub_0200E084(v2->unk_44, 0); + Window_EraseMessageBox(v2->unk_44, 0); Window_Remove(v2->unk_44); v2->unk_04 = 0; v2->unk_00 = 5; @@ -2906,7 +2906,7 @@ BOOL ov8_0224B67C(FieldSystem *fieldSystem, Window *param1, MessageLoader *param v2->unk_14 = v1; v2->unk_18 = v3; - FieldTask_Start(fieldSystem->unk_10, ov8_0224B3D4, v2); + FieldTask_Start(fieldSystem->taskManager, ov8_0224B3D4, v2); } return 1; @@ -3368,7 +3368,7 @@ static int ov8_0224BCA8(UnkStruct_ov8_0224C098 *param0) MapObject_SetZ(v0->unk_08.unk_08, v0->unk_08.unk_04); sub_02064208(v0->unk_08.unk_08); ov5_021F4714(v0->unk_08.unk_0C, FX32_ONE); - sub_020057A4(1356, 0); + Sound_StopEffect(1356, 0); Sound_PlayEffect(1367); Sound_PlayEffect(1357); diff --git a/src/overlay009/ov9_02249960.c b/src/overlay009/ov9_02249960.c index e74f26092b..c3d45aae83 100644 --- a/src/overlay009/ov9_02249960.c +++ b/src/overlay009/ov9_02249960.c @@ -2601,7 +2601,7 @@ static void ov9_0224ADC0(UnkStruct_ov9_02249B04 *param0) v6 = NARC_AllocAndReadWholeMember(param0->unk_10, 0, 4); NNS_G2dGetUnpackedCharacterData(v6, &v7); - Bg_LoadTiles(param0->fieldSystem->unk_08, 2, v7->pRawData, v7->szByte, 0); + Bg_LoadTiles(param0->fieldSystem->bgConfig, 2, v7->pRawData, v7->szByte, 0); Heap_FreeToHeap(v6); } @@ -2612,9 +2612,9 @@ static void ov9_0224ADC0(UnkStruct_ov9_02249B04 *param0) v8 = NARC_AllocAndReadWholeMember(param0->unk_10, 2, 4); NNS_G2dGetUnpackedScreenData(v8, &v9); - Bg_CopyTilemapBufferRangeToVRAM(param0->fieldSystem->unk_08, 2, (void *)v9->rawData, v9->szByte, 0); - Bg_LoadTilemapBuffer(param0->fieldSystem->unk_08, 2, (void *)v9->rawData, v9->szByte); - Bg_CopyTilemapBufferToVRAM(param0->fieldSystem->unk_08, 2); + Bg_CopyTilemapBufferRangeToVRAM(param0->fieldSystem->bgConfig, 2, (void *)v9->rawData, v9->szByte, 0); + Bg_LoadTilemapBuffer(param0->fieldSystem->bgConfig, 2, (void *)v9->rawData, v9->szByte); + Bg_CopyTilemapBufferToVRAM(param0->fieldSystem->bgConfig, 2); Heap_FreeToHeap(v8); } @@ -5209,7 +5209,7 @@ static int ov9_0224D4C4(UnkStruct_ov9_02249B04 *param0, UnkStruct_ov9_0224D078 * if ((param1->unk_44.x == param1->unk_2C.x) && (param1->unk_44.y == param1->unk_2C.y) && (param1->unk_44.z == param1->unk_2C.z)) { if (param1->unk_08 == 22) { - sub_020057A4(1481, 0); + Sound_StopEffect(1481, 0); param1->unk_04 = 5; } else { MapObject *v5 = Player_MapObject(param0->fieldSystem->playerAvatar); @@ -6524,7 +6524,7 @@ static int ov9_0224E798(UnkStruct_ov9_02249B04 *param0, TaskManager *param1, u16 } } - sub_020057A4(1482, 0); + Sound_StopEffect(1482, 0); return 2; } @@ -8310,7 +8310,7 @@ static int ov9_0224FEDC(UnkStruct_ov9_02249B04 *param0, TaskManager *param1, u16 ov5_021F88DC(v1, 1 << 2 | 1 << 4 | 1 << 6 | 1 << 5); } - sub_020057A4(1488, 0); + Sound_StopEffect(1488, 0); *param2 = 4; { @@ -8628,7 +8628,7 @@ static int ov9_02250468(UnkStruct_ov9_02249B04 *param0, TaskManager *param1, u16 ov5_021F88DC(v1, 1 << 2 | 1 << 4 | 1 << 6 | 1 << 5); } - sub_020057A4(1488, 0); + Sound_StopEffect(1488, 0); *param2 = 4; } @@ -9346,7 +9346,7 @@ static int ov9_02250DA0(UnkStruct_ov9_02249B04 *param0, TaskManager *param1, u16 if (v0->unk_02 <= 0) { v0->unk_02 = 48; - sub_020057A4(1484, 0); + Sound_StopEffect(1484, 0); ov9_0224B64C(param0, v0->unk_00); v0->unk_00++; @@ -9384,7 +9384,7 @@ static int ov9_02250E00(UnkStruct_ov9_02249B04 *param0, TaskManager *param1, u16 if (v0->unk_02 <= 0) { if (v0->unk_00 >= 1) { v0->unk_02 = 48; - sub_020057A4(1484, 0); + Sound_StopEffect(1484, 0); ov9_0224B624(param0, v0->unk_00); v0->unk_00--; } else { diff --git a/src/overlay010/ov10_0221F800.c b/src/overlay010/ov10_0221F800.c index d2192c772c..4956851ddc 100644 --- a/src/overlay010/ov10_0221F800.c +++ b/src/overlay010/ov10_0221F800.c @@ -4,7 +4,6 @@ #include #include "struct_decls/font_oam.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" @@ -37,6 +36,7 @@ #include "item.h" #include "journal.h" #include "map_header.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "palette.h" @@ -44,18 +44,17 @@ #include "pokemon.h" #include "pokemon_icon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_data.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200679C.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_02014000.h" @@ -134,7 +133,7 @@ typedef struct UnkStruct_ov10_0221FB28_t { Strbuf *unk_BA8; int unk_BAC; int unk_BB0; - UIControlData *unk_BB4; + Menu *unk_BB4; void *unk_BB8; int unk_BBC; int unk_BC0; @@ -495,16 +494,16 @@ static void ov10_0221F930(UnkStruct_ov10_0221FB28 *param0) } Window_FillRectWithColor(¶m0->unk_B8C, 15, 0, 0, 27 * 8, 4 * 8); - sub_0200E060(¶m0->unk_B8C, 0, 1, 15); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_B8C, 0, 1, 15); param0->unk_BAC = Text_AddPrinterWithParams(¶m0->unk_B8C, FONT_MESSAGE, param0->unk_BA8, 0, 0, TEXT_SPEED_INSTANT, NULL); - param0->unk_BB4 = sub_02002054(param0->unk_0C, &Unk_ov10_02222A68, (1 + (18 + 12)), 14, 1, param0->unk_00->unk_24); + param0->unk_BB4 = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_0C, &Unk_ov10_02222A68, (1 + (18 + 12)), 14, 1, param0->unk_00->unk_24); Bg_ScheduleTilemapTransfer(param0->unk_0C, 0); param0->unk_BB0 = 4; break; case 4: { - u32 v0 = sub_02002114(param0->unk_BB4, param0->unk_00->unk_24); + u32 v0 = Menu_ProcessInputAndHandleExit(param0->unk_BB4, param0->unk_00->unk_24); switch (v0) { case 0: @@ -528,11 +527,11 @@ static void ov10_0221F930(UnkStruct_ov10_0221FB28 *param0) break; case 7: if (param0->unk_BB4 != NULL) { - sub_02002154(param0->unk_BB4, param0->unk_00->unk_24); + Menu_DestroyForExit(param0->unk_BB4, param0->unk_00->unk_24); param0->unk_BB4 = NULL; } - sub_0200E084(¶m0->unk_B7C, 0); + Window_EraseMessageBox(¶m0->unk_B7C, 0); Bg_ScheduleTilemapTransfer(param0->unk_0C, 0); param0->unk_BB0 = 8; break; @@ -703,7 +702,7 @@ static u8 ov10_0221FD00(UnkStruct_ov10_0221FB28 *param0) static u8 ov10_0221FE10(UnkStruct_ov10_0221FB28 *param0) { - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return 0; } @@ -826,10 +825,10 @@ static u8 ov10_02220014(UnkStruct_ov10_0221FB28 *param0) static u8 ov10_02220228(UnkStruct_ov10_0221FB28 *param0) { if (param0->unk_B76 == 8) { - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, param0->unk_00->unk_24); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, param0->unk_00->unk_24); } - if ((param0->unk_B76 >= 8) && (ScreenWipe_Done() == 1)) { + if ((param0->unk_B76 >= 8) && (IsScreenTransitionDone() == 1)) { param0->unk_B73 = 2; return 1; } @@ -1052,7 +1051,7 @@ static u8 ov10_02220700(UnkStruct_ov10_0221FB28 *param0) } break; default: - sub_0200E084(¶m0->unk_B7C, 0); + Window_EraseMessageBox(¶m0->unk_B7C, 0); Bg_ScheduleTilemapTransfer(param0->unk_0C, 0); param0->unk_B76 = 0; param0->unk_B75 = 64 / 3; @@ -1144,7 +1143,7 @@ static u8 ov10_02220A34(UnkStruct_ov10_0221FB28 *param0) static u8 ov10_02220A50(SysTask *param0, UnkStruct_ov10_0221FB28 *param1) { - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return 0; } @@ -1164,7 +1163,7 @@ static u8 ov10_02220A50(SysTask *param0, UnkStruct_ov10_0221FB28 *param1) ov10_02220BE8(param1); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); PaletteData_FreeBuffer(param1->unk_08, 0); PaletteData_Free(param1->unk_08); @@ -1190,7 +1189,7 @@ static BOOL ov10_02220AD0(void) static void ov10_02220B00(UnkStruct_ov10_0221FB28 *param0, UnkStruct_ov104_02241308 *param1, int param2) { - sub_0201DBEC(64, param0->unk_00->unk_24); + VRAMTransferManager_New(64, param0->unk_00->unk_24); param0->unk_190 = sub_0200C6E4(param0->unk_00->unk_24); param0->unk_194 = sub_0200C704(param0->unk_190); @@ -1267,7 +1266,7 @@ static void ov10_02220C64(void *param0) Bg_RunScheduledUpdates(v0->unk_0C); PaletteData_CommitFadedBuffers(v0->unk_08); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } @@ -1449,9 +1448,9 @@ static void ov10_02220F1C(UnkStruct_ov10_0221FB28 *param0) GF_ASSERT(param0->unk_B9C == GX_BG0_AS_2D && param0->unk_00 != NULL && param0->unk_00->unk_00 != NULL && param0->unk_00->unk_00->unk_108 != NULL); v0 = Options_Frame(param0->unk_00->unk_00->unk_108); - sub_0200DD0C(param0->unk_0C, 0, 1, 15, v0, param0->unk_00->unk_24); + LoadMessageBoxGraphics(param0->unk_0C, 0, 1, 15, v0, param0->unk_00->unk_24); PaletteData_LoadBufferFromHardware(param0->unk_08, 0, 15 * 16, 0x20 * 1); - sub_0200DAA4(param0->unk_0C, 0, (1 + (18 + 12)), 14, 0, param0->unk_00->unk_24); + LoadStandardWindowGraphics(param0->unk_0C, 0, (1 + (18 + 12)), 14, 0, param0->unk_00->unk_24); PaletteData_LoadBufferFromHardware(param0->unk_08, 0, 14 * 16, 0x20 * 1); Font_LoadTextPalette(0, 13 * 0x20, param0->unk_00->unk_24); PaletteData_LoadBufferFromHardware(param0->unk_08, 0, 13 * 16, 0x20 * 1); @@ -2477,7 +2476,7 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0) static void ov10_022229D4(UnkStruct_ov10_0221FB28 *param0) { Window_FillRectWithColor(¶m0->unk_B7C, 15, 0, 0, 27 * 8, 4 * 8); - sub_0200E060(¶m0->unk_B7C, 0, 1, 15); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_B7C, 0, 1, 15); } static BOOL ov10_02222A08(UnkStruct_ov10_0221FB28 *param0) @@ -2492,14 +2491,14 @@ static BOOL ov10_02222A08(UnkStruct_ov10_0221FB28 *param0) static void ov10_02222A28(UnkStruct_ov10_0221FB28 *param0) { if (param0->unk_BB8 == NULL) { - param0->unk_BB8 = sub_0200E7FC(¶m0->unk_B7C, 1); + param0->unk_BB8 = Window_AddWaitDial(¶m0->unk_B7C, 1); } } static void ov10_02222A48(UnkStruct_ov10_0221FB28 *param0) { if (param0->unk_BB8 != NULL) { - DeleteWaitDial(param0->unk_BB8); + DestroyWaitDial(param0->unk_BB8); param0->unk_BB8 = NULL; } } diff --git a/src/overlay012/ov12_0221FC20.c b/src/overlay012/ov12_0221FC20.c index 3a575cb70f..b6a10d7f74 100644 --- a/src/overlay012/ov12_0221FC20.c +++ b/src/overlay012/ov12_0221FC20.c @@ -3308,7 +3308,7 @@ static void ov12_02222968(UnkStruct_ov12_0221FCDC *param0) v0 = inline_ov12_022204C4(param0->unk_18); param0->unk_18 += 1; - sub_020057A4(v0, 0); + Sound_StopEffect(v0, 0); } static void ov12_02222984(UnkStruct_ov12_0221FCDC *param0) diff --git a/src/overlay013/ov13_0221FC20.c b/src/overlay013/ov13_0221FC20.c index fa0da990a7..bd13021506 100644 --- a/src/overlay013/ov13_0221FC20.c +++ b/src/overlay013/ov13_0221FC20.c @@ -30,6 +30,7 @@ #include "party.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task_manager.h" @@ -39,7 +40,6 @@ #include "unk_0200679C.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0208C098.h" #include "unk_02094EDC.h" @@ -836,7 +836,7 @@ static u8 ov13_0222081C(UnkStruct_ov13_022213F0 *param0) static u8 ov13_02220834(UnkStruct_ov13_022213F0 *param0) { - sub_0200E084(¶m0->unk_204C[1], 0); + Window_EraseMessageBox(¶m0->unk_204C[1], 0); return 2; } @@ -877,7 +877,7 @@ static u8 ov13_022208A4(UnkStruct_ov13_022213F0 *param0) ov13_02224144(param0); if (param0->unk_2076 == 5) { - param0->unk_207C[0] = (u16)Pokemon_GetValue(param0->unk_04[v0->unk_11].unk_00, 58 + v0->unk_34, NULL); + param0->unk_207C[0] = (u16)Pokemon_GetValue(param0->unk_04[v0->unk_11].unk_00, MON_DATA_MOVE1_CUR_PP + v0->unk_34, NULL); param0->unk_2078 = 2; } else { param0->unk_04[v0->unk_11].unk_17_3 = PokemonSummary_StatusIconAnimIdx(param0->unk_04[v0->unk_11].unk_00); @@ -1157,8 +1157,8 @@ static void ov13_02220D4C(UnkStruct_ov13_022213F0 *param0) { int v4 = ov16_0223EDE0(param0->unk_00->unk_08); - Graphics_LoadTilesToBgLayer(38, sub_0200DD04(v4), param0->unk_1E0, 4, 1, 0, 0, param0->unk_00->unk_0C); - PaletteData_LoadBufferFromFileStart(param0->unk_1E4, 38, sub_0200DD08(v4), param0->unk_00->unk_0C, 1, 0x20, 14 * 16); + Graphics_LoadTilesToBgLayer(38, GetMessageBoxTilesNARCMember(v4), param0->unk_1E0, 4, 1, 0, 0, param0->unk_00->unk_0C); + PaletteData_LoadBufferFromFileStart(param0->unk_1E4, 38, GetMessageBoxPaletteNARCMember(v4), param0->unk_00->unk_0C, 1, 0x20, 14 * 16); } { @@ -1241,7 +1241,7 @@ static void ov13_02220F98(UnkStruct_ov13_022213F0 *param0) param0->unk_04[v0].unk_2D = (u16)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_MAIL_ID, NULL); param0->unk_04[v0].unk_2E = (u8)Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_FORM, NULL); - for (v1 = 0; v1 < 4; v1++) { + for (v1 = 0; v1 < LEARNED_MOVES_MAX; v1++) { UnkStruct_ov13_022236B8 *v2 = ¶m0->unk_04[v0].unk_30[v1]; v2->unk_00 = Pokemon_GetValue(param0->unk_04[v0].unk_00, MON_DATA_MOVE1 + v1, NULL); diff --git a/src/overlay013/ov13_02221A88.c b/src/overlay013/ov13_02221A88.c index 33061d95bf..ee17cba18e 100644 --- a/src/overlay013/ov13_02221A88.c +++ b/src/overlay013/ov13_02221A88.c @@ -19,11 +19,11 @@ #include "pokemon.h" #include "pokemon_summary_app.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" #include "unk_0208C098.h" #include "unk_02094EDC.h" @@ -490,7 +490,7 @@ static void ov13_022221C8(UnkStruct_ov13_022213F0 *param0, u32 param1) { Strbuf *v0; - sub_0200E060(¶m0->unk_204C[0], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_204C[0], 1, 1, 14); Window_FillTilemap(¶m0->unk_204C[0], 15); v0 = MessageLoader_GetNewStrbuf(param0->unk_1FA4, param1); @@ -1538,7 +1538,7 @@ static void ov13_02223F7C(UnkStruct_ov13_022213F0 *param0) void ov13_022240E0(UnkStruct_ov13_022213F0 *param0) { - sub_0200E060(¶m0->unk_204C[1], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_204C[1], 1, 1, 14); Window_FillTilemap(¶m0->unk_204C[1], 15); ov13_02224108(param0); } diff --git a/src/overlay013/ov13_022264F4.c b/src/overlay013/ov13_022264F4.c index 7dcfb8a0d5..216d2013bc 100644 --- a/src/overlay013/ov13_022264F4.c +++ b/src/overlay013/ov13_022264F4.c @@ -31,6 +31,7 @@ #include "palette.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task_manager.h" @@ -40,7 +41,6 @@ #include "unk_0200679C.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_020797C8.h" static void ov13_02226590(SysTask *param0, void *param1); @@ -501,7 +501,7 @@ static u8 ov13_02226C60(UnkStruct_ov13_02227244 *param0) static u8 ov13_02226C6C(UnkStruct_ov13_02227244 *param0) { - sub_0200E084(¶m0->unk_1C, 0); + Window_EraseMessageBox(¶m0->unk_1C, 0); return 3; } @@ -748,8 +748,8 @@ static void ov13_02226FC4(UnkStruct_ov13_02227244 *param0) { int v4 = ov16_0223EDE0(param0->unk_00->unk_00); - Graphics_LoadTilesToBgLayer(38, sub_0200DD04(v4), param0->unk_04, 4, 1024 - (18 + 12), 0, 0, param0->unk_00->unk_0C); - PaletteData_LoadBufferFromFileStart(param0->unk_08, 38, sub_0200DD08(v4), param0->unk_00->unk_0C, 1, 0x20, 14 * 16); + Graphics_LoadTilesToBgLayer(38, GetMessageBoxTilesNARCMember(v4), param0->unk_04, 4, 1024 - (18 + 12), 0, 0, param0->unk_00->unk_0C); + PaletteData_LoadBufferFromFileStart(param0->unk_08, 38, GetMessageBoxPaletteNARCMember(v4), param0->unk_00->unk_0C, 1, 0x20, 14 * 16); } } diff --git a/src/overlay013/ov13_02227288.c b/src/overlay013/ov13_02227288.c index 063029f2f1..e6fb68d539 100644 --- a/src/overlay013/ov13_02227288.c +++ b/src/overlay013/ov13_02227288.c @@ -11,10 +11,10 @@ #include "item.h" #include "message.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_0200DA60.h" static void ov13_022273CC(UnkStruct_ov13_02227244 *param0); static void ov13_02227888(UnkStruct_ov13_02227244 *param0); @@ -374,7 +374,7 @@ static void ov13_02227974(UnkStruct_ov13_02227244 *param0) void ov13_022279F4(UnkStruct_ov13_02227244 *param0) { - sub_0200E060(¶m0->unk_1C, 1, 1024 - (18 + 12), 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1C, 1, 1024 - (18 + 12), 14); Window_FillTilemap(¶m0->unk_1C, 15); ov13_02227A1C(param0); } diff --git a/src/overlay017/ov17_0223B140.c b/src/overlay017/ov17_0223B140.c index 82ea709a9f..8bf69d5685 100644 --- a/src/overlay017/ov17_0223B140.c +++ b/src/overlay017/ov17_0223B140.c @@ -178,7 +178,7 @@ int ov17_0223B140(OverlayManager *param0, int *param1) v0->unk_0C.unk_24 = BgConfig_New(21); - sub_0201DBEC(64, 21); + VRAMTransferManager_New(64, 21); SetAutorepeat(4, 8); v0->unk_7E4 = ov17_0223F88C(v0->unk_00, &v0->unk_0C, &v0->unk_220); @@ -236,7 +236,7 @@ int ov17_0223B140(OverlayManager *param0, int *param1) u16 v3[4]; int v4; - for (v4 = 0; v4 < 4; v4++) { + for (v4 = 0; v4 < LEARNED_MOVES_MAX; v4++) { v3[v4] = Pokemon_GetValue(v0->unk_00->unk_00.unk_00[v0->unk_00->unk_00.unk_113], MON_DATA_MOVE1 + v4, NULL); } @@ -247,7 +247,7 @@ int ov17_0223B140(OverlayManager *param0, int *param1) ov17_022415E4(&v0->unk_0C); sub_02039734(); - sub_0200F174(1, 31, 31, 0x0, 6, 1, 21); + StartScreenTransition(1, 31, 31, 0x0, 6, 1, 21); v0->unk_04 = SysTask_Start(ov17_0223B6F0, v0, 60000); v0->unk_7EC = 1; @@ -271,7 +271,7 @@ int ov17_0223B444(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 1; } break; @@ -290,7 +290,7 @@ int ov17_0223B444(OverlayManager *param0, int *param1) } else if ((v1 == 3) && (v0->unk_1614 == 1)) { *param1 = 2; MI_CpuClear8(&v0->unk_160C, sizeof(UnkStruct_ov17_0223BCE8)); - sub_0200F174(2, 32, 32, 0x0, 6, 1, 21); + StartScreenTransition(2, 32, 32, 0x0, 6, 1, 21); break; } } @@ -301,12 +301,12 @@ int ov17_0223B444(OverlayManager *param0, int *param1) if ((v0->unk_1614 == 1) && (ov17_0224F3D0(&v0->unk_BF8) == 0) && (sub_02094EDC(v0->unk_00) == 0)) { *param1 = 2; MI_CpuClear8(&v0->unk_160C, sizeof(UnkStruct_ov17_0223BCE8)); - sub_0200F174(2, 32, 32, 0x0, 6, 1, 21); + StartScreenTransition(2, 32, 32, 0x0, 6, 1, 21); } break; case 2: if (v0->unk_1614 == 1) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } } @@ -344,7 +344,7 @@ int ov17_0223B580(OverlayManager *param0, int *param1) sub_0200D0B0(v0->unk_0C.unk_18, v0->unk_0C.unk_1C); sub_0200C8D4(v0->unk_0C.unk_18); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov17_022416E4(&v0->unk_0C); @@ -390,7 +390,7 @@ static void ov17_0223B6BC(void *param0) sub_02008A94(v0->unk_0C.unk_04); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_0C.unk_50); Bg_RunScheduledUpdates(v0->unk_0C.unk_24); @@ -603,7 +603,7 @@ static void ov17_0223BA10(UnkStruct_ov17_02246F24 *param0, NARC *param1) { int v0, v1, v2; - for (v0 = 0; v0 < 4; v0++) { + for (v0 = 0; v0 < LEARNED_MOVES_MAX; v0++) { v2 = Pokemon_GetValue(param0->unk_00->unk_00.unk_00[param0->unk_00->unk_00.unk_113], MON_DATA_MOVE1 + v0, NULL); if (v2 != 0) { diff --git a/src/overlay017/ov17_0223CB1C.c b/src/overlay017/ov17_0223CB1C.c index 1b6f8cc661..77fedb725c 100644 --- a/src/overlay017/ov17_0223CB1C.c +++ b/src/overlay017/ov17_0223CB1C.c @@ -28,6 +28,7 @@ #include "narc.h" #include "overlay_manager.h" #include "palette.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -37,7 +38,6 @@ #include "unk_0200762C.h" #include "unk_020093B4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02014000.h" #include "unk_02017728.h" @@ -158,7 +158,7 @@ int ov17_0223CB1C(OverlayManager *param0, int *param1) v0->unk_0C.unk_24 = BgConfig_New(22); - sub_0201DBEC(64, 22); + VRAMTransferManager_New(64, 22); SetAutorepeat(4, 8); ov17_0223D1B8(v0->unk_0C.unk_24); @@ -208,7 +208,7 @@ int ov17_0223CB1C(OverlayManager *param0, int *param1) PaletteData_FillBufferRange(v0->unk_0C.unk_44, 2, 0, 0x7fff, 0, ((16 - 2) * 16)); PaletteData_FillBufferRange(v0->unk_0C.unk_44, 3, 0, 0x7fff, 0, 16 * 16); sub_02039734(); - sub_0200F174(1, 27, 27, 0x0, 6, 1, 22); + StartScreenTransition(1, 27, 27, 0x0, 6, 1, 22); v0->unk_04 = SysTask_Start(ov17_0223D164, v0, 60000); v0->unk_4F6 = 1; @@ -234,7 +234,7 @@ int ov17_0223CDDC(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { PaletteData_StartFade(v0->unk_0C.unk_44, 0x1, 0xffff, 6, 16, 0, 0x7fff); PaletteData_StartFade(v0->unk_0C.unk_44, 0x2, 0xffff, 6, 16, 0, 0x7fff); PaletteData_StartFade(v0->unk_0C.unk_44, 0x4, 0x3fff, 6, 16, 0, 0x7fff); @@ -258,7 +258,7 @@ int ov17_0223CDDC(OverlayManager *param0, int *param1) } else if ((v1 == 3) && (v0->unk_F14 == 1)) { *param1 = 2; MI_CpuClear8(&v0->unk_F0C, sizeof(UnkStruct_ov17_0223D60C)); - sub_0200F174(2, 16, 36, 0x0, 6, 1, 22); + StartScreenTransition(2, 16, 36, 0x0, 6, 1, 22); break; } } @@ -269,12 +269,12 @@ int ov17_0223CDDC(OverlayManager *param0, int *param1) if ((v0->unk_F14 == 1) && (ov17_0224F3D0(&v0->unk_4F8) == 0) && (sub_02094EDC(v0->unk_00) == 0)) { *param1 = 2; MI_CpuClear8(&v0->unk_F0C, sizeof(UnkStruct_ov17_0223D60C)); - sub_0200F174(2, 16, 36, 0x0, 6, 1, 22); + StartScreenTransition(2, 16, 36, 0x0, 6, 1, 22); } break; case 2: if (v0->unk_F14 == 1) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } } @@ -309,7 +309,7 @@ int ov17_0223CF8C(OverlayManager *param0, int *param1) Bg_FreeTilemapBuffer(v0->unk_0C.unk_24, 4); sub_0200D0B0(v0->unk_0C.unk_1C, v0->unk_0C.unk_20); sub_0200C8D4(v0->unk_0C.unk_1C); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); for (v1 = 0; v1 < 4; v1++) { if (v0->unk_F18[v1].unk_00 != NULL) { @@ -371,7 +371,7 @@ static void ov17_0223D0C8(void *param0) } sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_0C.unk_44); Bg_RunScheduledUpdates(v0->unk_0C.unk_24); @@ -610,8 +610,8 @@ static void ov17_0223D4A8(UnkStruct_ov17_02247A48 *param0, NARC *param1) v0 = Options_Frame(param0->unk_00->unk_196C); - sub_0200DD0C(param0->unk_0C.unk_24, 1, 1, 15, v0, 22); - PaletteData_LoadBufferFromFileStart(param0->unk_0C.unk_44, 38, sub_0200DD08(v0), 22, 0, 0x20, 14 * 16); + LoadMessageBoxGraphics(param0->unk_0C.unk_24, 1, 1, 15, v0, 22); + PaletteData_LoadBufferFromFileStart(param0->unk_0C.unk_44, 38, GetMessageBoxPaletteNARCMember(v0), 22, 0, 0x20, 14 * 16); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 24, param0->unk_0C.unk_24, 2, 0, 0, 1, 22); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 21, param0->unk_0C.unk_24, 2, 0, 0, 1, 22); PaletteData_LoadBufferFromFileStart(param0->unk_0C.unk_44, 45, 37, 22, 0, 0x20, 0xc * 16); diff --git a/src/overlay017/ov17_0223DAD0.c b/src/overlay017/ov17_0223DAD0.c index 8cc6cbd17b..b8211d3814 100644 --- a/src/overlay017/ov17_0223DAD0.c +++ b/src/overlay017/ov17_0223DAD0.c @@ -36,6 +36,7 @@ #include "overlay_manager.h" #include "palette.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -45,7 +46,6 @@ #include "unk_0200762C.h" #include "unk_020093B4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_02014000.h" @@ -258,7 +258,7 @@ int ov17_0223DAD0(OverlayManager *param0, int *param1) ov17_0224CDB4(v0, 1); v0->unk_14.unk_60 = BgConfig_New(23); - sub_0201DBEC(64, 23); + VRAMTransferManager_New(64, 23); SetAutorepeat(4, 8); v0->unk_1074 = ov17_02249380(v0->unk_00, &v0->unk_14); @@ -314,7 +314,7 @@ int ov17_0223DAD0(OverlayManager *param0, int *param1) ov17_0224B59C(v0); sub_02039734(); - sub_0200F174(1, 17, 37, 0x0, 6, 1, 23); + StartScreenTransition(1, 17, 37, 0x0, 6, 1, 23); v0->unk_04 = SysTask_Start(ov17_0223E1FC, v0, 80000); v0->unk_1098 = 1; @@ -342,7 +342,7 @@ int ov17_0223DDD4(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 1; } break; @@ -361,7 +361,7 @@ int ov17_0223DDD4(OverlayManager *param0, int *param1) } else if ((v1 == 3) && (v0->unk_1B24 == 1)) { *param1 = 2; MI_CpuClear8(&v0->unk_1B1C, sizeof(UnkStruct_ov17_0223E838)); - sub_0200F174(2, 30, 30, 0x0, 6, 1, 23); + StartScreenTransition(2, 30, 30, 0x0, 6, 1, 23); break; } } @@ -372,12 +372,12 @@ int ov17_0223DDD4(OverlayManager *param0, int *param1) if ((v0->unk_1B24 == 1) && (ov17_0224F3D0(&v0->unk_109C) == 0) && (sub_02094EDC(v0->unk_00) == 0)) { *param1 = 2; MI_CpuClear8(&v0->unk_1B1C, sizeof(UnkStruct_ov17_0223E838)); - sub_0200F174(2, 30, 30, 0x0, 6, 1, 23); + StartScreenTransition(2, 30, 30, 0x0, 6, 1, 23); } break; case 2: if (v0->unk_1B24 == 1) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } } @@ -421,7 +421,7 @@ int ov17_0223DF0C(OverlayManager *param0, int *param1) sub_0200D0B0(v0->unk_14.unk_58, v0->unk_14.unk_5C); sub_0200C8D4(v0->unk_14.unk_58); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov17_0224A1EC(&v0->unk_14); @@ -496,7 +496,7 @@ static void ov17_0223E09C(void *param0) } sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_14.unk_90); Bg_RunScheduledUpdates(v0->unk_14.unk_60); @@ -798,8 +798,8 @@ static void ov17_0223E67C(UnkStruct_ov17_0224DF54 *param0, NARC *param1) PaletteData_LoadBufferFromFileStart(param0->unk_14.unk_90, 45, 36, 23, 0, 0x20, 13 * 16); v0 = Options_Frame(param0->unk_00->unk_196C); - sub_0200DD0C(param0->unk_14.unk_60, 1, 1, 15, v0, 23); - PaletteData_LoadBufferFromFileStart(param0->unk_14.unk_90, 38, sub_0200DD08(v0), 23, 0, 0x20, 14 * 16); + LoadMessageBoxGraphics(param0->unk_14.unk_60, 1, 1, 15, v0, 23); + PaletteData_LoadBufferFromFileStart(param0->unk_14.unk_90, 38, GetMessageBoxPaletteNARCMember(v0), 23, 0, 0x20, 14 * 16); ov17_0224C848(param0); { diff --git a/src/overlay017/ov17_0223F118.c b/src/overlay017/ov17_0223F118.c index d1943d2bc8..9822ecd4f7 100644 --- a/src/overlay017/ov17_0223F118.c +++ b/src/overlay017/ov17_0223F118.c @@ -4,6 +4,8 @@ #include #include +#include "consts/items.h" + #include "struct_decls/font_oam.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" @@ -229,11 +231,11 @@ void ov17_0223F374(UnkStruct_02095C48 *param0) v3 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_BEAUTY, NULL); switch (v5) { - case 260: + case ITEM_RED_SCARF: v6 = 110; break; - case 261: - case 264: + case ITEM_BLUE_SCARF: + case ITEM_YELLOW_SCARF: v6 = 105; break; } @@ -244,11 +246,11 @@ void ov17_0223F374(UnkStruct_02095C48 *param0) v3 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_CUTE, NULL); switch (v5) { - case 261: + case ITEM_BLUE_SCARF: v6 = 110; break; - case 260: - case 262: + case ITEM_RED_SCARF: + case ITEM_PINK_SCARF: v6 = 105; break; } @@ -259,11 +261,11 @@ void ov17_0223F374(UnkStruct_02095C48 *param0) v3 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_SMART, NULL); switch (v5) { - case 262: + case ITEM_PINK_SCARF: v6 = 110; break; - case 261: - case 263: + case ITEM_BLUE_SCARF: + case ITEM_GREEN_SCARF: v6 = 105; break; } @@ -274,11 +276,11 @@ void ov17_0223F374(UnkStruct_02095C48 *param0) v3 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_TOUGH, NULL); switch (v5) { - case 263: + case ITEM_GREEN_SCARF: v6 = 110; break; - case 262: - case 264: + case ITEM_PINK_SCARF: + case ITEM_YELLOW_SCARF: v6 = 105; break; } @@ -289,11 +291,11 @@ void ov17_0223F374(UnkStruct_02095C48 *param0) v3 = Pokemon_GetValue(param0->unk_00.unk_00[v0], MON_DATA_COOL, NULL); switch (v5) { - case 264: + case ITEM_YELLOW_SCARF: v6 = 110; break; - case 263: - case 260: + case ITEM_GREEN_SCARF: + case ITEM_RED_SCARF: v6 = 105; break; } diff --git a/src/overlay017/ov17_0223F7E4.c b/src/overlay017/ov17_0223F7E4.c index 1b2d9fa818..5fdf7f8e5b 100644 --- a/src/overlay017/ov17_0223F7E4.c +++ b/src/overlay017/ov17_0223F7E4.c @@ -766,7 +766,7 @@ static void ov17_0223FBD4(UnkStruct_ov17_0223F7E4 *param0, int param1, int param static void ov17_0223FCAC(UnkStruct_ov17_0223F7E4 *param0, int param1, int param2) { - u16 v0[4], v1[4]; + u16 v0[LEARNED_MOVES_MAX], v1[4]; int v2; Strbuf *v3; Strbuf *v4, *v5; @@ -776,7 +776,7 @@ static void ov17_0223FCAC(UnkStruct_ov17_0223F7E4 *param0, int param1, int param v8 = ¶m0->unk_18C; param0->unk_2C9 = 0xff; - for (v2 = 0; v2 < 4; v2++) { + for (v2 = 0; v2 < LEARNED_MOVES_MAX; v2++) { v0[v2] = Pokemon_GetValue(param0->unk_04->unk_00->unk_00[param0->unk_04->unk_00->unk_113], MON_DATA_MOVE1 + v2, NULL); if (v0[v2] != 0) { @@ -1229,12 +1229,12 @@ static void ov17_02240658(SysTask *param0, void *param1) int v2, v3; int v4, v5, v6; int v7, v8; - u16 v9[4]; + u16 v9[LEARNED_MOVES_MAX]; int v10, v11; v1 = v0->unk_04->unk_24; - for (v10 = 0; v10 < 4; v10++) { + for (v10 = 0; v10 < LEARNED_MOVES_MAX; v10++) { v9[v10] = Pokemon_GetValue(v0->unk_04->unk_00->unk_00[v0->unk_04->unk_00->unk_113], MON_DATA_MOVE1 + v10, NULL); } @@ -1561,13 +1561,13 @@ static int ov17_02240D04(UnkStruct_ov17_0223F7E4 *param0, int param1) int v3, v4; u8 v5[2][2]; UnkStruct_ov17_02240E68 *v6; - u16 v7[4]; + u16 v7[LEARNED_MOVES_MAX]; v6 = ¶m0->unk_2F6; v0 = ¶m0->unk_300; v2 = &Unk_ov17_02253558[param0->unk_2C8]; - for (v4 = 0; v4 < 4; v4++) { + for (v4 = 0; v4 < LEARNED_MOVES_MAX; v4++) { v7[v4] = Pokemon_GetValue(param0->unk_04->unk_00->unk_00[param0->unk_04->unk_00->unk_113], MON_DATA_MOVE1 + v4, NULL); } diff --git a/src/overlay017/ov17_022413D8.c b/src/overlay017/ov17_022413D8.c index f43cc43579..438ed2fa90 100644 --- a/src/overlay017/ov17_022413D8.c +++ b/src/overlay017/ov17_022413D8.c @@ -2137,7 +2137,7 @@ void ov17_022439C8(UnkStruct_02095C48 *param0, int param1, int param2, UnkStruct v0 = Pokemon_GetValue(param0->unk_00.unk_00[param1], MON_DATA_TYPE_1, NULL); v1 = Pokemon_GetValue(param0->unk_00.unk_00[param1], MON_DATA_TYPE_2, NULL); - if ((v0 == 7) || (v1 == 7)) { + if ((v0 == TYPE_GHOST) || (v1 == TYPE_GHOST)) { param3->unk_07 = 1; } else { param3->unk_07 = 0; diff --git a/src/overlay017/ov17_02246ECC.c b/src/overlay017/ov17_02246ECC.c index 8a96340f00..a487062cdb 100644 --- a/src/overlay017/ov17_02246ECC.c +++ b/src/overlay017/ov17_02246ECC.c @@ -1277,7 +1277,7 @@ static void ov17_02246F24(UnkStruct_ov17_02246F24 *param0, UnkStruct_ov17_02246F MI_CpuClear8(param1, sizeof(UnkStruct_ov17_02246F9C)); - for (v0 = 0; v0 < 4; v0++) { + for (v0 = 0; v0 < LEARNED_MOVES_MAX; v0++) { param1->unk_00[v0].unk_00 = Pokemon_GetValue(param0->unk_00->unk_00.unk_00[param2], MON_DATA_MOVE1 + v0, NULL); if (ov17_02243A98(¶m0->unk_220, param2, param1->unk_00[v0].unk_00) == 1) { diff --git a/src/overlay017/ov17_02247A48.c b/src/overlay017/ov17_02247A48.c index ef56dddb03..1d26b23e2e 100644 --- a/src/overlay017/ov17_02247A48.c +++ b/src/overlay017/ov17_02247A48.c @@ -40,13 +40,13 @@ #include "heap.h" #include "palette.h" #include "pokemon.h" +#include "render_window.h" #include "spl.h" #include "sys_task.h" #include "sys_task_manager.h" #include "unk_02005474.h" #include "unk_0200762C.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_020933F8.h" #include "unk_02094EDC.h" @@ -1193,7 +1193,7 @@ static void ov17_02248DA4(SysTask *param0, void *param1) switch (v0->unk_10) { case 0: if (v0->unk_17 != 0) { - sub_0200E060(&v0->unk_00->unk_0C.unk_28[0], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_00->unk_0C.unk_28[0], 1, 1, 14); Bg_ScheduleTilemapTransfer(v0->unk_00->unk_0C.unk_24, 1); ov17_02247A08(v0->unk_00, v0->unk_17, &v0->unk_13); v0->unk_10++; @@ -1212,7 +1212,7 @@ static void ov17_02248DA4(SysTask *param0, void *param1) if (v0->unk_19 == 1) { v0->unk_10++; } else if (v0->unk_12 >= v0->unk_18) { - sub_0200E084(&v0->unk_00->unk_0C.unk_28[0], 1); + Window_EraseMessageBox(&v0->unk_00->unk_0C.unk_28[0], 1); Bg_ScheduleTilemapTransfer(v0->unk_00->unk_0C.unk_24, 1); v0->unk_10++; } diff --git a/src/overlay017/ov17_0224A0FC.c b/src/overlay017/ov17_0224A0FC.c index 885a3a3ccd..0e1df667ba 100644 --- a/src/overlay017/ov17_0224A0FC.c +++ b/src/overlay017/ov17_0224A0FC.c @@ -44,6 +44,7 @@ #include "narc.h" #include "palette.h" #include "pokemon.h" +#include "render_window.h" #include "spl.h" #include "strbuf.h" #include "string_template.h" @@ -52,7 +53,6 @@ #include "text.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_02012744.h" #include "unk_02014000.h" #include "unk_0201D15C.h" @@ -2104,7 +2104,7 @@ void ov17_0224C5A0(UnkStruct_ov17_0224DF54 *param0, u32 param1, const UnkStruct_ return; } - sub_0200E060(¶m0->unk_14.unk_64[1], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_14.unk_64[1], 1, 1, 14); Bg_ScheduleTilemapTransfer(param0->unk_14.unk_60, 1); v0 = Unk_ov17_0225470C[param1].unk_00; @@ -2123,7 +2123,7 @@ void ov17_0224C5A0(UnkStruct_ov17_0224DF54 *param0, u32 param1, const UnkStruct_ void ov17_0224C640(UnkStruct_ov17_0224DF54 *param0) { - sub_0200E084(¶m0->unk_14.unk_64[1], 1); + Window_EraseMessageBox(¶m0->unk_14.unk_64[1], 1); Bg_ScheduleTilemapTransfer(param0->unk_14.unk_60, 1); param0->unk_1B25 = 0; } diff --git a/src/overlay017/ov17_0224CFB8.c b/src/overlay017/ov17_0224CFB8.c index 59b7984c68..31836fe7cb 100644 --- a/src/overlay017/ov17_0224CFB8.c +++ b/src/overlay017/ov17_0224CFB8.c @@ -39,10 +39,10 @@ #include "heap.h" #include "palette.h" #include "pokemon.h" +#include "render_window.h" #include "sys_task.h" #include "sys_task_manager.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_02094EDC.h" static int ov17_0224CFF8(UnkStruct_ov17_0224F30C *param0, void *param1, int param2, void *param3); @@ -1403,7 +1403,7 @@ static void ov17_0224E6C8(SysTask *param0, void *param1) switch (v0->unk_10) { case 0: if (v0->unk_1A != 0) { - sub_0200E060(&v0->unk_00->unk_14.unk_64[0], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_00->unk_14.unk_64[0], 1, 1, 14); Bg_ScheduleTilemapTransfer(v0->unk_00->unk_14.unk_60, 1); ov17_0224C2CC(v0->unk_00, v0->unk_1A, &v0->unk_14); @@ -1423,7 +1423,7 @@ static void ov17_0224E6C8(SysTask *param0, void *param1) if (v0->unk_1C == 1) { v0->unk_10++; } else if (v0->unk_12 >= v0->unk_1B) { - sub_0200E084(&v0->unk_00->unk_14.unk_64[0], 1); + Window_EraseMessageBox(&v0->unk_00->unk_14.unk_64[0], 1); Bg_ScheduleTilemapTransfer(v0->unk_00->unk_14.unk_60, 1); v0->unk_10++; } diff --git a/src/overlay017/ov17_0224F4D4.c b/src/overlay017/ov17_0224F4D4.c index 1b56314091..46da2bb00b 100644 --- a/src/overlay017/ov17_0224F4D4.c +++ b/src/overlay017/ov17_0224F4D4.c @@ -170,7 +170,7 @@ int ov17_0224F4D4(OverlayManager *param0, int *param1) v0->unk_10.unk_20 = BgConfig_New(24); - sub_0201DBEC(64, 24); + VRAMTransferManager_New(64, 24); SetAutorepeat(4, 8); ov17_0224FB34(v0->unk_10.unk_20); @@ -205,7 +205,7 @@ int ov17_0224F4D4(OverlayManager *param0, int *param1) ov17_02250744(v0); sub_02039734(); - sub_0200F174(1, 33, 33, 0x0, 6, 1, 24); + StartScreenTransition(1, 33, 33, 0x0, 6, 1, 24); v0->unk_04 = SysTask_Start(ov17_0224FAFC, v0, 80000); v0->unk_850 = 1; @@ -232,7 +232,7 @@ int ov17_0224F754(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { SetHBlankCallback(ov17_0224FAAC, v0); v0->unk_848 = ov17_0223F70C(24, v0->unk_10.unk_C0, Unk_ov17_02254AB4, NELEMS(Unk_ov17_02254AB4), 0xff, (50000 + 5000)); *param1 = 1; @@ -266,7 +266,7 @@ int ov17_0224F754(OverlayManager *param0, int *param1) } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -300,7 +300,7 @@ int ov17_0224F86C(OverlayManager *param0, int *param1) Bg_FreeTilemapBuffer(v0->unk_10.unk_20, 4); sub_0200D0B0(v0->unk_10.unk_18, v0->unk_10.unk_1C); sub_0200C8D4(v0->unk_10.unk_18); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov17_022507C4(&v0->unk_10); @@ -360,7 +360,7 @@ static void ov17_0224FA24(void *param0) sub_02008A94(v0->unk_10.unk_04); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_10.unk_C0); Bg_RunScheduledUpdates(v0->unk_10.unk_20); diff --git a/src/overlay017/ov17_02250744.c b/src/overlay017/ov17_02250744.c index 15fa78af12..49f869c956 100644 --- a/src/overlay017/ov17_02250744.c +++ b/src/overlay017/ov17_02250744.c @@ -25,6 +25,7 @@ #include "palette.h" #include "pokemon.h" #include "pokemon_icon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -33,7 +34,6 @@ #include "unk_02005474.h" #include "unk_0200762C.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0201D15C.h" #include "unk_020933F8.h" #include "unk_02094EDC.h" @@ -290,8 +290,8 @@ void ov17_022509AC(UnkStruct_ov17_0224FCA0 *param0) v0 = Options_Frame(param0->unk_00->unk_196C); - sub_0200DD0C(param0->unk_10.unk_20, 1, 1, 15, v0, 24); - PaletteData_LoadBufferFromFileStart(param0->unk_10.unk_C0, 38, sub_0200DD08(v0), 24, 0, 0x20, 14 * 16); + LoadMessageBoxGraphics(param0->unk_10.unk_20, 1, 1, 15, v0, 24); + PaletteData_LoadBufferFromFileStart(param0->unk_10.unk_C0, 38, GetMessageBoxPaletteNARCMember(v0), 24, 0, 0x20, 14 * 16); Bg_ClearTilemap(param0->unk_10.unk_20, 2); NARC_dtor(v1); } @@ -329,8 +329,8 @@ void ov17_02250B00(UnkStruct_ov17_0224FCA0 *param0) v0 = Options_Frame(param0->unk_00->unk_196C); - sub_0200DD0C(param0->unk_10.unk_20, 1, 1, 15, v0, 24); - PaletteData_LoadBufferFromFileStart(param0->unk_10.unk_C0, 38, sub_0200DD08(v0), 24, 0, 0x20, 14 * 16); + LoadMessageBoxGraphics(param0->unk_10.unk_20, 1, 1, 15, v0, 24); + PaletteData_LoadBufferFromFileStart(param0->unk_10.unk_C0, 38, GetMessageBoxPaletteNARCMember(v0), 24, 0, 0x20, 14 * 16); { Strbuf *v2; diff --git a/src/overlay017/ov17_02251D6C.c b/src/overlay017/ov17_02251D6C.c index b07062c9b4..3321aa0247 100644 --- a/src/overlay017/ov17_02251D6C.c +++ b/src/overlay017/ov17_02251D6C.c @@ -26,12 +26,12 @@ #include "bg_window.h" #include "heap.h" #include "pokemon.h" +#include "render_window.h" #include "sys_task.h" #include "sys_task_manager.h" #include "unk_02005474.h" #include "unk_0200762C.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" static int ov17_02251DAC(UnkStruct_ov17_0224F30C *param0, void *param1, int param2, void *param3); @@ -425,7 +425,7 @@ static void ov17_0225228C(SysTask *param0, void *param1) case 0: if (v0->unk_1A != 0) { if (v0->unk_1D == 0) { - sub_0200E060(&v0->unk_00->unk_10.unk_24[0], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_00->unk_10.unk_24[0], 1, 1, 14); Bg_ScheduleTilemapTransfer(v0->unk_00->unk_10.unk_20, 1); } @@ -446,7 +446,7 @@ static void ov17_0225228C(SysTask *param0, void *param1) if (v0->unk_1C == 1) { v0->unk_10++; } else if (v0->unk_12 >= v0->unk_1B) { - sub_0200E084(&v0->unk_00->unk_10.unk_24[0], 1); + Window_EraseMessageBox(&v0->unk_00->unk_10.unk_24[0], 1); Bg_ScheduleTilemapTransfer(v0->unk_00->unk_10.unk_20, 1); v0->unk_10++; } @@ -500,12 +500,12 @@ static void ov17_022523AC(SysTask *param0, void *param1) } break; case 2: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 24); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 24); sub_020055D0(1135, 30); v0->unk_10++; break; case 3: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0->unk_10++; } break; @@ -518,7 +518,7 @@ static void ov17_022523AC(SysTask *param0, void *param1) ov17_02250CEC(v0->unk_00); - sub_0200E060(&v0->unk_00->unk_10.unk_24[0], 0, 1, 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_00->unk_10.unk_24[0], 0, 1, 14); Window_FillTilemap(&v0->unk_00->unk_10.unk_24[0], 0xff); Window_CopyToVRAM(&v0->unk_00->unk_10.unk_24[0]); @@ -536,12 +536,12 @@ static void ov17_022523AC(SysTask *param0, void *param1) break; case 5: if (Sound_CheckFade() == 0) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 24); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 24); v0->unk_10++; } break; case 6: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { Sound_PlayBGM(1181); v0->unk_10++; } @@ -811,7 +811,7 @@ static void ov17_02252858(SysTask *param0, void *param1) } } - sub_020057A4(1786, 0); + Sound_StopEffect(1786, 0); v0->unk_10++; break; case 5: diff --git a/src/overlay019/ov19_021D0D80.c b/src/overlay019/ov19_021D0D80.c index cdd72bf7a4..c4334ccba1 100644 --- a/src/overlay019/ov19_021D0D80.c +++ b/src/overlay019/ov19_021D0D80.c @@ -3,6 +3,7 @@ #include #include +#include "constants/items.h" #include "constants/species.h" #include "struct_decls/struct_02023FCC_decl.h" @@ -1197,8 +1198,8 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1) case 3: switch (param0->unk_1B8) { case UnkEnum_021DFB94_46: - if ((ov19_021D5F7C(¶m0->unk_00) == 112) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != 487)) { - StringTemplate_SetItemName(param0->unk_19C, 0, 112); + if ((ov19_021D5F7C(¶m0->unk_00) == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) { + StringTemplate_SetItemName(param0->unk_19C, 0, ITEM_GRISEOUS_ORB); ov19_021D5408(¶m0->unk_00, 45); ov19_021D6594(param0->unk_114, 24); *param1 = 7; @@ -1237,8 +1238,8 @@ static void ov19_021D2308(UnkStruct_ov19_021D5DF8 *param0, u32 *param1) ov19_021D5408(¶m0->unk_00, 24); ov19_021D6594(param0->unk_114, 24); (*param1) = 7; - } else if ((param0->unk_00.unk_112 == 112) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != 487)) { - StringTemplate_SetItemName(param0->unk_19C, 0, 112); + } else if ((param0->unk_00.unk_112 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) { + StringTemplate_SetItemName(param0->unk_19C, 0, ITEM_GRISEOUS_ORB); ov19_021D5408(¶m0->unk_00, 45); ov19_021D6594(param0->unk_114, 24); *param1 = 7; @@ -2310,7 +2311,7 @@ static BOOL ov19_021D3AC8(BoxPokemon *param0, u16 param1) if (BoxPokemon_GetValue(param0, MON_DATA_EGG_EXISTS, NULL) == 0) { int v2; - for (v2 = 0; v2 < 4; v2++) { + for (v2 = 0; v2 < LEARNED_MOVES_MAX; v2++) { if (BoxPokemon_GetValue(param0, MON_DATA_MOVE1 + v2, NULL) == param1) { v0 = 1; break; @@ -2462,7 +2463,7 @@ static void ov19_021D3D44(UnkStruct_ov19_021D5DF8 *param0, u32 *param1) Heap_FreeToHeap(param0->unk_214); Overlay_UnloadByID(FS_OVERLAY_ID(overlay84)); - if ((v1 == 112) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != 487)) { + if ((v1 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) { (void)0; } else if (v1 != 0) { Bag_TryRemoveItem(SaveData_GetBag(param0->unk_11C), v1, 1, 9); @@ -2486,7 +2487,7 @@ static void ov19_021D3D44(UnkStruct_ov19_021D5DF8 *param0, u32 *param1) if (ov19_021D6600(param0->unk_114, 2)) { if (v1 == 0) { ov19_021D0EC0(param0); - } else if ((v1 == 112) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != 487)) { + } else if ((v1 == ITEM_GRISEOUS_ORB) && (BoxPokemon_GetValue(param0->unk_00.unk_4C.unk_00, MON_DATA_SPECIES, NULL) != SPECIES_GIRATINA)) { StringTemplate_SetItemName(param0->unk_19C, 0, v1); ov19_021D5408(¶m0->unk_00, 45); ov19_021D6594(param0->unk_114, 24); @@ -3793,7 +3794,7 @@ static void ov19_021D55C4(UnkStruct_ov19_021D5DF8 *param0, UnkStruct_ov19_021D4D sub_02079914(param0->unk_120, 0xffffffff, v1->unk_07, v0->unk_00); v2 = sub_02079C9C(param0->unk_120, 0xffffffff, v1->unk_07); - if ((BoxPokemon_GetValue(v2, MON_DATA_SPECIES, NULL) == 492) && (v4 == 1)) { + if ((BoxPokemon_GetValue(v2, MON_DATA_SPECIES, NULL) == SPECIES_SHAYMIN) && (v4 == 1)) { v3 = 1; } } else { @@ -4075,7 +4076,7 @@ static void ov19_021D5BAC(UnkStruct_ov19_021D4DF0 *param0) v1 = param0->unk_74.unk_22; v0->unk_0B = v1; - BoxPokemon_SetValue(v0->unk_00, 11, &(v1)); + BoxPokemon_SetValue(v0->unk_00, MON_DATA_MARKS, &(v1)); if ((ov19_021D5E10(param0) == 0) && (ov19_021D5E38(param0) == 1)) { SaveData_SetFullSaveRequired(); @@ -4100,7 +4101,7 @@ static void ov19_021D5BE8(UnkStruct_ov19_021D4DF0 *param0, u16 param1, UnkStruct sub_02079C50(param2->unk_120, 0xffffffff, v1, 6, ¶m1); } - BoxPokemon_SetValue(v0->unk_00, 6, ¶m1); + BoxPokemon_SetValue(v0->unk_00, MON_DATA_HELD_ITEM, ¶m1); { int v2 = BoxPokemon_GetValue(v0->unk_00, MON_DATA_SPECIES, NULL); @@ -4109,7 +4110,7 @@ static void ov19_021D5BE8(UnkStruct_ov19_021D4DF0 *param0, u16 param1, UnkStruct BoxPokemon_SetArceusForm(v0->unk_00); v0->unk_0C = BoxPokemon_GetValue(v0->unk_00, MON_DATA_TYPE_1, NULL); v0->unk_0D = BoxPokemon_GetValue(v0->unk_00, MON_DATA_TYPE_2, NULL); - } else if (v2 == 487) { + } else if (v2 == SPECIES_GIRATINA) { int v3; BoxPokemon_SetGiratinaForm(v0->unk_00); diff --git a/src/overlay019/ov19_021D61B0.c b/src/overlay019/ov19_021D61B0.c index 49340d1fa1..613e615699 100644 --- a/src/overlay019/ov19_021D61B0.c +++ b/src/overlay019/ov19_021D61B0.c @@ -453,11 +453,11 @@ static void ov19_021D671C(SysTask *param0, void *param1) case 0: Sound_PlayEffect(1549); G2_SetBlendAlpha(GX_BLEND_PLANEMASK_NONE, GX_BLEND_ALL, 0x6, 0xa); - sub_0200F174(0, 1, 1, 0x0, 8, 1, 10); + StartScreenTransition(0, 1, 1, 0x0, 8, 1, 10); v2->unk_06++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov19_021D6640(v2); } break; @@ -477,11 +477,11 @@ static void ov19_021D6780(SysTask *param0, void *param1) switch (v2->unk_06) { case 0: G2_SetBlendAlpha(GX_BLEND_PLANEMASK_NONE, GX_BLEND_ALL, 0x6, 0xa); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 10); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 10); v2->unk_06++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov19_021D6640(v2); } break; @@ -500,11 +500,11 @@ static void ov19_021D67DC(SysTask *param0, void *param1) switch (v2->unk_06) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 10); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 10); v2->unk_06++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov19_021D6640(v2); } break; @@ -1575,11 +1575,11 @@ static void ov19_021D7460(SysTask *param0, void *param1) switch (v2->unk_06) { case 0: Sound_PlayEffect(1550); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 10); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 10); v2->unk_06++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov19_021D6640(v2); } break; diff --git a/src/overlay019/ov19_021DB2FC.c b/src/overlay019/ov19_021DB2FC.c index ae13143aca..8c52e2b8bf 100644 --- a/src/overlay019/ov19_021DB2FC.c +++ b/src/overlay019/ov19_021DB2FC.c @@ -13,13 +13,13 @@ #include "enums.h" #include "graphics.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" -#include "unk_0200DA60.h" static void ov19_021DB4B4(BgConfig *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); static void ov19_021DB638(UnkStruct_ov19_021DB6F0 *param0, Window *param1, u8 param2, u32 param3); @@ -100,7 +100,7 @@ void ov19_021DB3C4(UnkStruct_ov19_021DB6F0 *param0) Graphics_LoadTilesToBgLayer(38, 0, param0->unk_00, 1, 512, 0, 0, 10); Graphics_LoadPalette(38, 24, 0, 7 * 0x20, 0x20, 10); - sub_0200DD0C(param0->unk_00, 1, 521, 8, param0->unk_20, 10); + LoadMessageBoxGraphics(param0->unk_00, 1, 521, 8, param0->unk_20, 10); } void ov19_021DB448(UnkStruct_ov19_021DB6F0 *param0, u32 param1) @@ -255,7 +255,7 @@ void ov19_021DB748(UnkStruct_ov19_021DB6F0 *param0, const UnkStruct_ov19_021DF96 v1 = (8 - param1->unk_21) * 16; Window_FillRectWithColor(v0, 15, 0, v1, 10, param1->unk_21 * 16); - sub_02002180(v0, 0, v1 + (param1->unk_20 * 16)); + Window_DrawMenuCursor(v0, 0, v1 + (param1->unk_20 * 16)); Window_LoadTiles(v0); } diff --git a/src/overlay019/ov19_021DB8E4.c b/src/overlay019/ov19_021DB8E4.c index 39ad30b237..af327cce13 100644 --- a/src/overlay019/ov19_021DB8E4.c +++ b/src/overlay019/ov19_021DB8E4.c @@ -3,6 +3,8 @@ #include #include +#include "consts/species.h" + #include "struct_decls/struct_020797DC_decl.h" #include "overlay019/ov19_021D0D80.h" @@ -251,9 +253,9 @@ void ov19_021DBBA8(UnkStruct_ov19_021DBA9C *param0, u32 param1, u32 param2, NNS_ if (BoxPokemon_GetValue(v1, MON_DATA_IS_EGG, NULL) == 0) { u16 v9 = BoxPokemon_GetValue(v1, MON_DATA_FORM, NULL); - v6 = PokemonPersonalData_GetFormValue(v5, v9, 27); + v6 = PokemonPersonalData_GetFormValue(v5, v9, MON_DATA_PERSONAL_COLOR); } else { - v6 = (v5 != 490) ? 8 : 1; + v6 = (v5 != SPECIES_MANAPHY) ? 8 : 1; } { diff --git a/src/overlay020/ov20_021D2098.c b/src/overlay020/ov20_021D2098.c index 15e757dbc7..2e1f29940f 100644 --- a/src/overlay020/ov20_021D2098.c +++ b/src/overlay020/ov20_021D2098.c @@ -336,11 +336,11 @@ static void ov20_021D2414(SysTask *param0, void *param1) switch (v0->unk_14) { case 0: - sub_0200F174(0, 0, 0, 0x0, 5, 1, 35); + StartScreenTransition(0, 0, 0, 0x0, 5, 1, 35); v0->unk_14++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { int v2; ov20_021D2EF0(v0->unk_00->unk_244); @@ -489,11 +489,11 @@ static void ov20_021D2570(SysTask *param0, void *param1) switch (v0->unk_14) { case 0: - sub_0200F174(0, 1, 1, 0x0, 5, 1, 35); + StartScreenTransition(0, 1, 1, 0x0, 5, 1, 35); v0->unk_14++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_14++; } break; diff --git a/src/overlay020/ov20_021D2EA4.c b/src/overlay020/ov20_021D2EA4.c index ca9937fecf..852a95aefb 100644 --- a/src/overlay020/ov20_021D2EA4.c +++ b/src/overlay020/ov20_021D2EA4.c @@ -19,10 +19,10 @@ #include "heap.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_0200DA60.h" #include "unk_02014D38.h" typedef struct { @@ -146,8 +146,8 @@ void ov20_021D2F50(UnkStruct_ov20_021D30F8 *param0, NARC *param1) v1 += 9; Graphics_LoadPalette(38, 24, 0, 14 * 0x20, 0x20, 35); - sub_0200DD0C(v0, 0, v1, 15, ov20_021D2080(param0->unk_04), 35); - sub_0200E010(¶m0->unk_1C, v1, 15); + LoadMessageBoxGraphics(v0, 0, v1, 15, ov20_021D2080(param0->unk_04), 35); + Window_DrawMessageBox(¶m0->unk_1C, v1, 15); Window_PutToTilemap(¶m0->unk_0C); Window_PutToTilemap(¶m0->unk_1C); @@ -541,7 +541,7 @@ void ov20_021D3790(UnkStruct_ov20_021D30F8 *param0, int param1) MessageLoader_GetStrbuf(param0->unk_48, 10, param0->unk_4C); Text_AddPrinterWithParamsAndColor(¶m0->unk_2C, FONT_SYSTEM, param0->unk_4C, 14, 0 + 16, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 9), NULL); - Window_Show(¶m0->unk_2C, 0, param0->unk_60, 14); + Window_DrawStandardFrame(¶m0->unk_2C, 0, param0->unk_60, 14); ColoredArrow_Print(param0->unk_50, ¶m0->unk_2C, 0, 0 + (param1 * 16)); Window_CopyToVRAM(¶m0->unk_2C); @@ -555,6 +555,6 @@ void ov20_021D381C(UnkStruct_ov20_021D30F8 *param0, int param1) void ov20_021D384C(UnkStruct_ov20_021D30F8 *param0) { - Window_Clear(¶m0->unk_2C, 0); + Window_EraseStandardFrame(¶m0->unk_2C, 0); Window_ClearAndCopyToVRAM(¶m0->unk_2C); } diff --git a/src/overlay021/ov21_021D0D80.c b/src/overlay021/ov21_021D0D80.c index 0f404c5831..e6904ca3cc 100644 --- a/src/overlay021/ov21_021D0D80.c +++ b/src/overlay021/ov21_021D0D80.c @@ -129,7 +129,7 @@ int ov21_021D0D80(OverlayManager *param0, int *param1) GF_ASSERT(v0); memset(v0, 0, sizeof(UnkStruct_ov21_021D0F18)); - sub_0201DBEC(8, 37); + VRAMTransferManager_New(8, 37); v1 = OverlayManager_Args(param0); @@ -213,7 +213,7 @@ int ov21_021D0EC8(OverlayManager *param0, int *param1) GF_ASSERT(v1 == 1); ov21_021D12C4(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); OverlayManager_FreeData(param0); Heap_Destroy(37); sub_0200544C(1, 127); @@ -234,17 +234,17 @@ static void ov21_021D0F04(void *param0) static void ov21_021D0F18(UnkStruct_ov21_021D0F18 *param0) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 37); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 37); } static void ov21_021D0F38(UnkStruct_ov21_021D0F18 *param0) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 37); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 37); } static BOOL ov21_021D0F58(UnkStruct_ov21_021D0F18 *param0) { - return ScreenWipe_Done(); + return IsScreenTransitionDone(); } const static UnkFuncPtr_ov21_021E9B74 Unk_ov21_021E9B74[10] = { diff --git a/src/overlay021/ov21_021E8D48.c b/src/overlay021/ov21_021E8D48.c index da65debed4..98910a1ee9 100644 --- a/src/overlay021/ov21_021E8D48.c +++ b/src/overlay021/ov21_021E8D48.c @@ -143,7 +143,7 @@ UnkStruct_ov21_021E8D48 *ov21_021E8D48(const UnkStruct_ov21_021E8E0C *param0) v1 = Pokemon_GetValue(param0->unk_10, MON_DATA_SPECIES, NULL); v2 = Pokemon_GetValue(param0->unk_10, MON_DATA_FORM, NULL); - if (v1 == 487) { + if (v1 == SPECIES_GIRATINA) { Pokedex_SetupGiratina(v2); } else { Pokedex_SetupGiratina(1); @@ -226,7 +226,7 @@ static void ov21_021E8E0C(UnkStruct_ov21_021E8D48 *param0, const UnkStruct_ov21_ { int v3; - if ((param0->unk_220 == 487) && (v2 > 0)) { + if ((param0->unk_220 == SPECIES_GIRATINA) && (v2 > 0)) { v3 = 11; } else { v3 = param0->unk_220; diff --git a/src/overlay022/ov22_02255D44.c b/src/overlay022/ov22_02255D44.c index bff486031c..c74d487dfc 100644 --- a/src/overlay022/ov22_02255D44.c +++ b/src/overlay022/ov22_02255D44.c @@ -60,6 +60,7 @@ #include "overlay_manager.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task_manager.h" @@ -70,7 +71,6 @@ #include "unk_0200679C.h" #include "unk_020093B4.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015920.h" #include "unk_02017728.h" @@ -245,12 +245,12 @@ int ov22_02255E50(OverlayManager *param0, int *param1) switch (*param1) { case 0: case 1: - sub_0200F174( + StartScreenTransition( 1, 5, 5, 0x0, 6, 1, 13); (*param1) = 2; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1)++; } break; @@ -341,12 +341,12 @@ int ov22_02255E50(OverlayManager *param0, int *param1) } break; case 11: - sub_0200F174( + StartScreenTransition( 1, 0, 0, 0x0, 6, 1, 13); (*param1)++; break; case 12: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1) = 0; v0->unk_70C = 10; v1 = 1; @@ -553,11 +553,11 @@ int ov22_022562EC(OverlayManager *param0, int *param1) (*param1)++; break; case 11: - sub_0200F174(1, 17, 19, 0x0, 6, 1, 13); + StartScreenTransition(1, 17, 19, 0x0, 6, 1, 13); (*param1)++; break; case 12: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_02004550(7, 1169, 0); (*param1)++; } @@ -610,12 +610,12 @@ int ov22_022562EC(OverlayManager *param0, int *param1) break; } - sub_0200F174(1, 26, 26, 0x0, 6, 1, 13); + StartScreenTransition(1, 26, 26, 0x0, 6, 1, 13); Sound_PlayEffect(1668); (*param1)++; break; case 20: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1) = 0; v0->unk_70C = 10; v1 = 1; @@ -1343,8 +1343,8 @@ static void ov22_022572A0(UnkStruct_ov22_02255D44 *param0, u32 param1, u8 param2 Font_LoadScreenIndicatorsPalette(0, 7 * 32, 14); Window_Add(param0->unk_00.unk_40, param0->unk_718, 3, param2, param3, param4, param5, 7, (0 + (29 * 4) + (18 + 12))); Window_FillTilemap(param0->unk_718, 15); - sub_0200DD0C(param0->unk_00.unk_40, 3, (0 + (29 * 4)), 8, v2, 14); - sub_0200E060(param0->unk_718, 0, (0 + (29 * 4)), 8); + LoadMessageBoxGraphics(param0->unk_00.unk_40, 3, (0 + (29 * 4)), 8, v2, 14); + Window_DrawMessageBoxWithScrollCursor(param0->unk_718, 0, (0 + (29 * 4)), 8); v0 = MessageLoader_Init(0, 26, 385, 13); v1 = MessageLoader_GetNewStrbuf(v0, param1); diff --git a/src/overlay022/ov22_0225A428.c b/src/overlay022/ov22_0225A428.c index 5683991f76..b326d9aeb9 100644 --- a/src/overlay022/ov22_0225A428.c +++ b/src/overlay022/ov22_0225A428.c @@ -21,6 +21,7 @@ #include "game_options.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "sys_task.h" @@ -28,7 +29,6 @@ #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" -#include "unk_0200DA60.h" #include "unk_02095AF0.h" static void ov22_0225A6E0(UnkStruct_ov22_022597BC *param0, BgConfig *param1); @@ -85,7 +85,7 @@ void ov22_0225A428(UnkStruct_ov22_0225A428 *param0, UnkStruct_ov22_02256BAC *par Window_FillTilemap(param0->unk_134, 15); ov22_0225A860(param0->unk_134, 26, param1->unk_14, 6, 0, 0, TEXT_COLOR(1, 2, 15), TEXT_SPEED_NO_TRANSFER); ov22_0225A860(param0->unk_134, 26, param1->unk_14, param1->unk_18, 72, 0, TEXT_COLOR(1, 2, 15), TEXT_SPEED_NO_TRANSFER); - sub_0200E060(param0->unk_134, 0, 1, 1); + Window_DrawMessageBoxWithScrollCursor(param0->unk_134, 0, 1, 1); } param0->unk_30 = param1->unk_04; @@ -197,7 +197,7 @@ static void ov22_0225A718(BgConfig *param0, const Options *param1) { int v0 = Options_Frame(param1); - sub_0200DD0C(param0, 5, 1, 1, v0, 14); + LoadMessageBoxGraphics(param0, 5, 1, 1, v0, 14); Font_LoadScreenIndicatorsPalette(4, 2 * 32, 14); } @@ -210,7 +210,7 @@ static void ov22_0225A748(Window **param0, BgConfig *param1, int param2, int par Window_FillTilemap(*param0, 15); if (param7) { - sub_0200E060(*param0, 0, 1, 1); + Window_DrawMessageBoxWithScrollCursor(*param0, 0, 1, 1); } Window_CopyToVRAM(*param0); @@ -232,7 +232,7 @@ static s32 ov22_0225A7CC(Window *param0, int param1, int param2, int param3, int Window_FillTilemap(param0, 15); v0 = ov22_0225A860(param0, param1, param2, param3, param4, param5, TEXT_COLOR(1, 2, 15), param6); - sub_0200E060(param0, 0, 1, 1); + Window_DrawMessageBoxWithScrollCursor(param0, 0, 1, 1); return v0; } @@ -243,7 +243,7 @@ static s32 ov22_0225A814(Window *param0, int param1, int param2, int param3, int Window_FillTilemap(param0, 15); v0 = ov22_0225A8B4(param0, param1, param2, param3, param4, param5, TEXT_COLOR(1, 2, 15), param6, param7); - sub_0200E060(param0, 0, 1, 1); + Window_DrawMessageBoxWithScrollCursor(param0, 0, 1, 1); return v0; } diff --git a/src/overlay022/ov22_0225B660.c b/src/overlay022/ov22_0225B660.c index 7f6f03d618..6bcb9da413 100644 --- a/src/overlay022/ov22_0225B660.c +++ b/src/overlay022/ov22_0225B660.c @@ -126,12 +126,12 @@ int ov22_0225B738(OverlayManager *param0, int *param1) (*param1)++; break; case 1: - sub_0200F174( + StartScreenTransition( 0, 5, 1, 0x0, 6, 1, 13); (*param1)++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1)++; } break; @@ -141,11 +141,11 @@ int ov22_0225B738(OverlayManager *param0, int *param1) } break; case 4: - sub_0200F174(0, 2, 0, 0x0, 6, 1, 13); + StartScreenTransition(0, 2, 0, 0x0, 6, 1, 13); (*param1)++; break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; diff --git a/src/overlay023/ov23_0223E140.c b/src/overlay023/ov23_0223E140.c index 3620cd62ad..a3eb750c16 100644 --- a/src/overlay023/ov23_0223E140.c +++ b/src/overlay023/ov23_0223E140.c @@ -5,7 +5,6 @@ #include "consts/game_records.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0202855C_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "struct_defs/struct_0200C738.h" @@ -38,7 +37,9 @@ #include "gx_layers.h" #include "heap.h" #include "journal.h" +#include "menu.h" #include "narc.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" @@ -47,14 +48,12 @@ #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201D15C.h" @@ -147,7 +146,7 @@ typedef struct { CellActorResourceData unk_204[2]; CellActor *unk_24C[8]; UnkStruct_ov23_0223E6F8 unk_26C[250]; - UIControlData *unk_848; + Menu *unk_848; UnkStruct_ov23_0223E6F8 *unk_84C[8]; u8 unk_86C[8]; UnkStruct_ov23_0223FC9C unk_874[8]; @@ -685,7 +684,7 @@ void ov23_0223E2F8(void) ov23_02254044(ov23_0224219C()); if (Unk_ov23_02257740->unk_848) { - sub_02002154(Unk_ov23_02257740->unk_848, 4); + Menu_DestroyForExit(Unk_ov23_02257740->unk_848, 4); } sub_02059514(); @@ -994,7 +993,7 @@ static int ov23_0223E8CC(u16 param0, u16 param1) static void ov23_0223E99C(SysTask *param0, void *param1) { if (Unk_ov23_02257740->unk_848) { - sub_02002154(Unk_ov23_02257740->unk_848, 4); + Menu_DestroyForExit(Unk_ov23_02257740->unk_848, 4); } Unk_ov23_02257740->unk_848 = NULL; @@ -1022,11 +1021,11 @@ static void ov23_0223EA38(SysTask *param0, void *param1) if (Unk_ov23_02257740->unk_A24 != -1) { if (Text_IsPrinterActive(Unk_ov23_02257740->unk_A24) == 0) { - Unk_ov23_02257740->unk_848 = sub_02002100(Unk_ov23_02257740->fieldSystem->unk_08, &Unk_ov23_0225630E, 1024 - (18 + 12) - 9, 11, 4); + Unk_ov23_02257740->unk_848 = Menu_MakeYesNoChoice(Unk_ov23_02257740->fieldSystem->bgConfig, &Unk_ov23_0225630E, 1024 - (18 + 12) - 9, 11, 4); Unk_ov23_02257740->unk_A24 = -1; } } else { - int v1 = sub_02002114(Unk_ov23_02257740->unk_848, 4); + int v1 = Menu_ProcessInputAndHandleExit(Unk_ov23_02257740->unk_848, 4); if (v1 == 0xffffffff) { return; @@ -1318,7 +1317,7 @@ static void ov23_0223EE80(UnkStruct_ov23_0223EE80 *param0) Bg_ClearTilemap(v1, 0); Bg_ClearTilemap(v1, 1); Bg_ClearTilemap(v1, 2); - sub_0200DD0C(v1, 3, (512 - (18 + 12)), 10, 0, 29); + LoadMessageBoxGraphics(v1, 3, (512 - (18 + 12)), 10, 0, 29); { NARC *v6; @@ -1399,7 +1398,7 @@ static void ov23_0223F020(UnkStruct_ov23_0223EE80 *param0) Unk_ov23_02257740->unk_04 = NULL; Heap_Destroy(29); - ov23_02253E2C(ov23_0224219C(), Unk_ov23_02257740->fieldSystem->unk_08, (1024 - (18 + 12)), (((1024 - (18 + 12)) - 73) - (27 * 4))); + ov23_02253E2C(ov23_0224219C(), Unk_ov23_02257740->fieldSystem->bgConfig, (1024 - (18 + 12)), (((1024 - (18 + 12)) - 73) - (27 * 4))); } static void ov23_0223F118(SysTask *param0, void *param1) @@ -1417,11 +1416,11 @@ static void ov23_0223F118(SysTask *param0, void *param1) break; case 1: ov23_0224942C(fieldSystem->unk_6C); - sub_0200F174(2, 16, 18, 0x0, 6, 1, 4); + StartScreenTransition(2, 16, 18, 0x0, 6, 1, 4); (v0->unk_00)++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (fieldSystem->unk_6C == NULL) { sub_0203CD44(fieldSystem); (v0->unk_00)++; @@ -1444,7 +1443,7 @@ static void ov23_0223F118(SysTask *param0, void *param1) break; case 6: sub_02039734(); - sub_0200F174(3, 17, 17, 0x0, 6, 1, 29); + StartScreenTransition(3, 17, 17, 0x0, 6, 1, 29); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); @@ -1452,7 +1451,7 @@ static void ov23_0223F118(SysTask *param0, void *param1) (v0->unk_00)++; break; case 7: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_08 = 0; Sound_PlayEffect(1354); v0->unk_00 = 8; @@ -1559,13 +1558,13 @@ static void ov23_0223F118(SysTask *param0, void *param1) case 18: CellActorCollection_Update(Unk_ov23_02257740->unk_20); ov23_02254044(ov23_0224219C()); - sub_0200F174(3, 16, 16, 0x0, 6, 1, 29); + StartScreenTransition(3, 16, 16, 0x0, 6, 1, 29); (v0->unk_00)++; break; case 19: CellActorCollection_Update(Unk_ov23_02257740->unk_20); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_02039794(); ov23_0223F020(v0); sub_020509D4(fieldSystem); @@ -1578,7 +1577,7 @@ static void ov23_0223F118(SysTask *param0, void *param1) sub_02039734(); sub_020594FC(); HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem); - sub_0200F174(1, 17, 19, 0x0, 6, 1, 4); + StartScreenTransition(1, 17, 19, 0x0, 6, 1, 4); (v0->unk_00)++; break; } @@ -1586,12 +1585,12 @@ static void ov23_0223F118(SysTask *param0, void *param1) case 21: sub_0200F338(0); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem); HBlankSystem_Start(v0->fieldSystem->unk_04->hBlankSystem); Graphics_LoadPalette(50, 52, 0, 10 * 0x20, 4 * 0x20, 4); - sub_0200DAA4(v0->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 2, 4); + LoadStandardWindowGraphics(v0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 2, 4); CommPlayerMan_Restart(); ov23_0224B460(); @@ -1622,12 +1621,12 @@ static void ov23_0223F118(SysTask *param0, void *param1) break; case 23: CellActorCollection_Update(Unk_ov23_02257740->unk_20); - sub_0200F174(3, 2, 2, 0x0, 15, 1, 29); + StartScreenTransition(3, 2, 2, 0x0, 15, 1, 29); Sound_PlayEffect(1697); v0->unk_00 = 24; break; case 24: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { int v3; for (v3 = 0; v3 < 8; v3++) { @@ -1781,7 +1780,7 @@ static int ov23_0223F970(UnkStruct_ov23_02256EB0 *param0) SaveData *v0 = FieldSystem_SaveData(Unk_ov23_02257740->fieldSystem); UndergroundData *v1 = sub_020298B0(v0); BOOL v2 = TrainerInfo_ID(SaveData_GetTrainerInfo(v0)) % 2; - BOOL v3 = Pokedex_IsNationalUnlocked(SaveData_Pokedex(v0)); + BOOL v3 = Pokedex_IsNationalDexObtained(SaveData_Pokedex(v0)); int v4 = 0; if (v3) { diff --git a/src/overlay023/ov23_02241F74.c b/src/overlay023/ov23_02241F74.c index 95a976a199..c81421c58c 100644 --- a/src/overlay023/ov23_02241F74.c +++ b/src/overlay023/ov23_02241F74.c @@ -37,6 +37,7 @@ #include "graphics.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" @@ -44,7 +45,6 @@ #include "sys_task.h" #include "sys_task_manager.h" #include "trainer_info.h" -#include "unk_0200DA60.h" #include "unk_0202854C.h" #include "unk_02030EE0.h" #include "unk_020366A0.h" @@ -137,15 +137,15 @@ static void CommManUnderground_Init(CommManUnderground *param0, FieldSystem *fie sCommManUnderground->unk_1C.unk_02 = 0; sCommManUnderground->unk_14B = 0; sCommManUnderground->unk_147 = 1; - sCommManUnderground->unk_118 = ov23_02253D48(634, 33, fieldSystem->unk_08, v0, 500); - sCommManUnderground->unk_11C = ov23_02253D48(638, 33, fieldSystem->unk_08, v0, 0); - sCommManUnderground->unk_120 = ov23_02253D48(636, 33, fieldSystem->unk_08, v0, 1000); - sCommManUnderground->unk_124 = ov23_02253D48(637, 33, fieldSystem->unk_08, v0, 0); - sCommManUnderground->unk_128 = ov23_02253D48(630, 33, fieldSystem->unk_08, v0, 0); + sCommManUnderground->unk_118 = ov23_02253D48(634, 33, fieldSystem->bgConfig, v0, 500); + sCommManUnderground->unk_11C = ov23_02253D48(638, 33, fieldSystem->bgConfig, v0, 0); + sCommManUnderground->unk_120 = ov23_02253D48(636, 33, fieldSystem->bgConfig, v0, 1000); + sCommManUnderground->unk_124 = ov23_02253D48(637, 33, fieldSystem->bgConfig, v0, 0); + sCommManUnderground->unk_128 = ov23_02253D48(630, 33, fieldSystem->bgConfig, v0, 0); - sub_0200DD0C(sCommManUnderground->fieldSystem->unk_08, 3, (1024 - (18 + 12)), 10, 0, 4); + LoadMessageBoxGraphics(sCommManUnderground->fieldSystem->bgConfig, 3, (1024 - (18 + 12)), 10, 0, 4); Graphics_LoadPalette(50, 52, 0, 10 * 0x20, 4 * 0x20, 4); - sub_0200DAA4(sCommManUnderground->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 2, 4); + LoadStandardWindowGraphics(sCommManUnderground->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 2, 4); for (v1 = 0; v1 < (7 + 1); v1++) { sCommManUnderground->unk_C2[v1] = 0xff; @@ -761,7 +761,7 @@ void ov23_02242B14(void) ov23_0223E878(); if (!sCommManUnderground->unk_14B) { - ov23_022468A8(sCommManUnderground->fieldSystem->unk_08); + ov23_022468A8(sCommManUnderground->fieldSystem->bgConfig); } } @@ -819,7 +819,7 @@ void ov23_02242CB4(void) ov23_022435A8(); ov23_0223E2F4(); sCommManUnderground->unk_14B = 0; - sub_0200DD0C(sCommManUnderground->fieldSystem->unk_08, 3, (1024 - (18 + 12)), 10, 0, 4); + LoadMessageBoxGraphics(sCommManUnderground->fieldSystem->bgConfig, 3, (1024 - (18 + 12)), 10, 0, 4); } } @@ -1192,7 +1192,7 @@ BOOL ov23_02243298(int param0) return 0; } - if (sCommManUnderground->fieldSystem->unk_10) { + if (sCommManUnderground->fieldSystem->taskManager) { sCommManUnderground->unk_130++; if (sCommManUnderground->unk_130 > 100) { diff --git a/src/overlay023/ov23_0224340C.c b/src/overlay023/ov23_0224340C.c index 3d1ca32041..3fd8bf7bff 100644 --- a/src/overlay023/ov23_0224340C.c +++ b/src/overlay023/ov23_0224340C.c @@ -2071,7 +2071,7 @@ static void ov23_02244C70(SysTask *param0, void *param1) Unk_ov23_02257764->unk_2F0 = NULL; Unk_ov23_02257764->unk_300 = NULL; - sub_020057A4(1631, 0); + Sound_StopEffect(1631, 0); break; } } @@ -2105,7 +2105,7 @@ static void ov23_02244DE0(int param0, BOOL param1) v0->unk_00 = 7; Unk_ov23_02257764->unk_300 = NULL; - sub_020057A4(1631, 0); + Sound_StopEffect(1631, 0); } } @@ -2123,7 +2123,7 @@ static void ov23_02244E10(int param0, BOOL param1) Unk_ov23_02257764->unk_2F0 = NULL; Unk_ov23_02257764->unk_300 = NULL; - sub_020057A4(1631, 0); + Sound_StopEffect(1631, 0); } } @@ -2159,7 +2159,7 @@ static void ov23_02244EA4(FieldSystem *fieldSystem, BOOL param1, int param2) Unk_ov23_02257764->unk_300 = v0; ov23_022451BC(v0); - v0->unk_10 = fieldSystem->unk_08; + v0->unk_10 = fieldSystem->bgConfig; v0->fieldSystem = fieldSystem; v0->unk_19 = param1; v0->unk_18 = param2; @@ -2224,7 +2224,7 @@ static void ov23_02244FD0(int param0, BOOL param1) { int v1; - u8 *v2 = Bg_GetTilemapBuffer(Unk_ov23_02257764->fieldSystem->unk_08, 2); + u8 *v2 = Bg_GetTilemapBuffer(Unk_ov23_02257764->fieldSystem->bgConfig, 2); for (v1 = 0; v1 < 0x800; v1 += 2) { v2[v1] = 0; @@ -3159,7 +3159,7 @@ static void ov23_02245F94(SysTask *param0, void *param1) } break; case 7: - if (ov23_02246640(Unk_ov23_02257764->fieldSystem->unk_08, v0)) { + if (ov23_02246640(Unk_ov23_02257764->fieldSystem->bgConfig, v0)) { if (v0->unk_113) { v0->unk_00 = 11; } else { @@ -3587,8 +3587,8 @@ static void ov23_02246A80(SysTask *param0, void *param1) case 7: G2_SetBlendAlpha(GX_BLEND_PLANEMASK_OBJ, GX_BLEND_PLANEMASK_BG0, 14, 7); - if (ov23_02246F20(Unk_ov23_02257764->fieldSystem->unk_08, v0)) { - sub_020057A4(1632, 0); + if (ov23_02246F20(Unk_ov23_02257764->fieldSystem->bgConfig, v0)) { + Sound_StopEffect(1632, 0); if (v0->unk_15E) { v0->unk_00 = 11; @@ -3607,7 +3607,7 @@ static void ov23_02246A80(SysTask *param0, void *param1) } break; case 8: - sub_020057A4(1632, 0); + Sound_StopEffect(1632, 0); ov23_02254044(ov23_0224219C()); break; case 9: @@ -3792,7 +3792,7 @@ static void ov23_0224710C(int param0, BOOL param1, int param2) ov23_0224AD7C(param0, 2); if (CommSys_CurNetId() == param0) { - ov23_02246CF0(Unk_ov23_02257764->fieldSystem->unk_08, param1, param2); + ov23_02246CF0(Unk_ov23_02257764->fieldSystem->bgConfig, param1, param2); } } @@ -3806,7 +3806,7 @@ static void ov23_02247144(int param0, BOOL param1) if (Unk_ov23_02257764->unk_300) { UnkStruct_ov23_022468DC *v0 = Unk_ov23_02257764->unk_300; - sub_020057A4(1632, 0); + Sound_StopEffect(1632, 0); if (v0->unk_15E && param1) { ov23_022448FC(v0->unk_15D); @@ -4204,7 +4204,7 @@ static void ov23_02247A8C(SysTask *param0, void *param1) } break; case 7: - if (ov23_02247568(Unk_ov23_02257764->fieldSystem->unk_08, v0)) { + if (ov23_02247568(Unk_ov23_02257764->fieldSystem->bgConfig, v0)) { if (v0->unk_127) { v0->unk_00 = 11; } else { @@ -4265,7 +4265,7 @@ static void ov23_02247D78(int param0, BOOL param1, int param2) ov23_0224AD7C(param0, 2); if (CommSys_CurNetId() == param0) { - ov23_02247D28(Unk_ov23_02257764->fieldSystem->unk_08, param1, param2); + ov23_02247D28(Unk_ov23_02257764->fieldSystem->bgConfig, param1, param2); } } @@ -4500,7 +4500,7 @@ static void ov23_022480C4(SysTask *param0, void *param1) case 7: G2_SetBlendAlpha(GX_BLEND_PLANEMASK_OBJ, GX_BLEND_PLANEMASK_BG0, 14, 7); - if (ov23_02247F4C(Unk_ov23_02257764->fieldSystem->unk_08, v0)) { + if (ov23_02247F4C(Unk_ov23_02257764->fieldSystem->bgConfig, v0)) { if (v0->unk_2A) { v0->unk_00 = 11; } else { @@ -4561,7 +4561,7 @@ static void ov23_02248364(int param0, BOOL param1, int param2) ov23_0224AD7C(param0, 2); if (CommSys_CurNetId() == param0) { - ov23_02248318(Unk_ov23_02257764->fieldSystem->unk_08, param1, param2); + ov23_02248318(Unk_ov23_02257764->fieldSystem->bgConfig, param1, param2); } } @@ -4683,7 +4683,7 @@ static void ov23_02248570(int param0, BOOL param1, int param2) ov23_0224AD7C(param0, 2); if (CommSys_CurNetId() == param0) { - ov23_0224852C(Unk_ov23_02257764->fieldSystem->unk_08, param1, param2); + ov23_0224852C(Unk_ov23_02257764->fieldSystem->bgConfig, param1, param2); } } @@ -4833,7 +4833,7 @@ static void ov23_02248884(SysTask *param0, void *param1) v0->unk_00 = 7; break; case 7: - if (ov23_02248614(Unk_ov23_02257764->fieldSystem->unk_08, v0)) { + if (ov23_02248614(Unk_ov23_02257764->fieldSystem->bgConfig, v0)) { v0->unk_00 = 9; } break; diff --git a/src/overlay023/ov23_02248C08.c b/src/overlay023/ov23_02248C08.c index 4fd53ff71e..60ace9a5ea 100644 --- a/src/overlay023/ov23_02248C08.c +++ b/src/overlay023/ov23_02248C08.c @@ -3,25 +3,21 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020298B0_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "overlay023/funcptr_ov23_02248D20.h" #include "overlay023/struct_ov23_02248D20.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "colored_arrow.h" #include "core_sys.h" #include "heap.h" -#include "unk_0200112C.h" +#include "list_menu.h" +#include "string_list.h" #include "unk_02005474.h" -#include "unk_02013A04.h" #include "unk_0202854C.h" -UnkStruct_ov23_02248D20 *ov23_02248C08(UnkStruct_ov84_02240FA8 *param0, u16 param1, u16 param2, u8 param3, UnkFuncPtr_ov23_02248D20 param4, UndergroundData *param5, BOOL param6) +UnkStruct_ov23_02248D20 *ov23_02248C08(ListMenuTemplate *param0, u16 param1, u16 param2, u8 param3, UnkFuncPtr_ov23_02248D20 param4, UndergroundData *param5, BOOL param6) { UnkStruct_ov23_02248D20 *v0 = (UnkStruct_ov23_02248D20 *)Heap_AllocFromHeap(param3, sizeof(UnkStruct_ov23_02248D20)); @@ -39,20 +35,20 @@ UnkStruct_ov23_02248D20 *ov23_02248C08(UnkStruct_ov84_02240FA8 *param0, u16 para v0->unk_1D = param3; { - ResourceMetadata *v1 = sub_02013A04(param0->unk_10, v0->unk_1D); + StringList *v1 = StringList_New(param0->count, v0->unk_1D); int v2; - for (v2 = 0; v2 < param0->unk_10; v2++) { - sub_02013A90(v1, ¶m0->unk_00[v2]); + for (v2 = 0; v2 < param0->count; v2++) { + StringList_AddFromEntry(v1, ¶m0->choices[v2]); } - param0->unk_00 = v1; + param0->choices = v1; v0->unk_08 = v1; } } v0->unk_20 = (param1 + param2); - v0->unk_0C = sub_0200112C(param0, param1, param2, param3); + v0->unk_0C = ListMenu_New(param0, param1, param2, param3); return v0; } @@ -60,7 +56,7 @@ UnkStruct_ov23_02248D20 *ov23_02248C08(UnkStruct_ov84_02240FA8 *param0, u16 para static void ov23_02248CA4(u16 param0, u16 param1, UnkStruct_ov23_02248D20 *param2) { u16 v0 = param2->unk_14 + param2->unk_16; - u16 v1 = sub_02001504(param2->unk_0C, 3); + u16 v1 = ListMenu_GetAttribute(param2->unk_0C, 3); if ((param2->unk_18 != param0) || (param2->unk_1A != param1)) { param2->unk_18 = param0; @@ -74,10 +70,10 @@ static void ov23_02248CA4(u16 param0, u16 param1, UnkStruct_ov23_02248D20 *param } { - int v2 = sub_02001504(param2->unk_0C, 7); - u8 v3 = sub_02001504(param2->unk_0C, 9); - int v4 = (v0 - param0) * v3 + sub_02001504(param2->unk_0C, 8); - Window *v5 = (Window *)sub_02001504(param2->unk_0C, 18); + int v2 = ListMenu_GetAttribute(param2->unk_0C, 7); + u8 v3 = ListMenu_GetAttribute(param2->unk_0C, 9); + int v4 = (v0 - param0) * v3 + ListMenu_GetAttribute(param2->unk_0C, 8); + Window *v5 = (Window *)ListMenu_GetAttribute(param2->unk_0C, 18); ColoredArrow_Print(param2->unk_10, v5, v2, v4); } @@ -85,16 +81,16 @@ static void ov23_02248CA4(u16 param0, u16 param1, UnkStruct_ov23_02248D20 *param u32 ov23_02248D20(UnkStruct_ov23_02248D20 *param0) { - BmpList *v0 = param0->unk_0C; + ListMenu *v0 = param0->unk_0C; u16 v1, v2, v3; int v4, v5; u32 v6; - ResourceMetadata *v7; + StringList *v7; if (param0->unk_00) { - int v8 = sub_02001504(v0, 2); + int v8 = ListMenu_GetAttribute(v0, 2); - sub_020014DC(v0, &v1, &v2); + ListMenu_GetListAndCursorPos(v0, &v1, &v2); if (param0->unk_1C) { ov23_02248CA4(v1, v2, param0); @@ -112,19 +108,19 @@ u32 ov23_02248D20(UnkStruct_ov23_02248D20 *param0) param0->unk_00(param0->unk_04, param0->unk_14 + param0->unk_16, v1 + v2); - v7 = sub_02013A04(v8, param0->unk_1D); + v7 = StringList_New(v8, param0->unk_1D); v5 = 0; for (v4 = 0; v4 < v8; v4++) { if (v4 == (param0->unk_14 + param0->unk_16)) { v5++; } else { - sub_02013A90(v7, ¶m0->unk_08[v5]); + StringList_AddFromEntry(v7, ¶m0->unk_08[v5]); v5++; } if ((v4) == (v1 + v2)) { - sub_02013A90(v7, ¶m0->unk_08[param0->unk_14 + param0->unk_16]); + StringList_AddFromEntry(v7, ¶m0->unk_08[param0->unk_14 + param0->unk_16]); } } @@ -142,24 +138,24 @@ u32 ov23_02248D20(UnkStruct_ov23_02248D20 *param0) } v9 = (v4 << 1) + v10; - v7[v4].unk_04 = v9; + v7[v4].index = v9; } v9 = (v4 << 1) + 1; - v7[v4].unk_04 = v9; + v7[v4].index = v9; } else { for (v4 = 0; v4 < v8 - 1; v4++) { - v7[v4].unk_04 = v4; + v7[v4].index = v4; } } Heap_FreeToHeap(param0->unk_08); param0->unk_08 = v7; - sub_020015CC(v0, v7); + ListMenu_SetChoices(v0, v7); param0->unk_1C = 0; - sub_020013AC(v0); + ListMenu_Draw(v0); return 0xffffffff; } } else { @@ -181,10 +177,10 @@ u32 ov23_02248D20(UnkStruct_ov23_02248D20 *param0) } } - v6 = sub_02001288(v0); + v6 = ListMenu_ProcessInput(v0); v3 = param0->unk_20; - sub_020014D0(v0, ¶m0->unk_20); + ListMenu_CalcTrueCursorPos(v0, ¶m0->unk_20); if (v3 != param0->unk_20) { Sound_PlayEffect(1500); @@ -206,9 +202,9 @@ u32 ov23_02248D20(UnkStruct_ov23_02248D20 *param0) void ov23_02248EF8(UnkStruct_ov23_02248D20 *param0, u16 *param1, u16 *param2) { - BmpList *v0 = param0->unk_0C; + ListMenu *v0 = param0->unk_0C; - sub_02001384(v0, param1, param2); + ListMenu_Free(v0, param1, param2); if (param0->unk_00) { ColoredArrow_Free(param0->unk_10); diff --git a/src/overlay023/ov23_02248F1C.c b/src/overlay023/ov23_02248F1C.c index b22a045f79..9a1890d749 100644 --- a/src/overlay023/ov23_02248F1C.c +++ b/src/overlay023/ov23_02248F1C.c @@ -18,6 +18,7 @@ #include "gx_layers.h" #include "narc.h" #include "player_avatar.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "sys_task_manager.h" @@ -25,7 +26,6 @@ #include "unk_0200679C.h" #include "unk_020093B4.h" #include "unk_0200A328.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0201D15C.h" #include "unk_0205D8CC.h" @@ -172,7 +172,7 @@ static void ov23_02248F1C(SysTask *param0, void *param1) } CellActorCollection_Delete(v0->unk_1BC); - sub_0200E084(&v0->unk_3F4, 0); + Window_EraseMessageBox(&v0->unk_3F4, 0); Window_Remove(&v0->unk_3F4); Bg_FreeTilemapBuffer(v1, 7); @@ -323,7 +323,7 @@ UnkStruct_ov23_0224942C *ov23_02249404(FieldSystem *fieldSystem) v0 = SysTask_GetParam(v1); v0->fieldSystem = fieldSystem; - v0->unk_1B8 = fieldSystem->unk_08; + v0->unk_1B8 = fieldSystem->bgConfig; return v0; } diff --git a/src/overlay023/ov23_022499E4.c b/src/overlay023/ov23_022499E4.c index 5aa20a277d..de9218e351 100644 --- a/src/overlay023/ov23_022499E4.c +++ b/src/overlay023/ov23_022499E4.c @@ -391,7 +391,7 @@ static void ov23_02249E18(void) ov23_02242B14(); - if (v0->fieldSystem->unk_10 != NULL) { + if (v0->fieldSystem->taskManager != NULL) { return; } @@ -579,7 +579,7 @@ static void ov23_0224A09C(void) ov23_02242B14(); sub_02059524(); - if (v0->fieldSystem->unk_10 != NULL) { + if (v0->fieldSystem->taskManager != NULL) { return; } diff --git a/src/overlay023/ov23_0224B05C.c b/src/overlay023/ov23_0224B05C.c index 465cb816bc..075e5ad291 100644 --- a/src/overlay023/ov23_0224B05C.c +++ b/src/overlay023/ov23_0224B05C.c @@ -5,15 +5,11 @@ #include "consts/game_records.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202855C_decl.h" #include "struct_decls/struct_02029894_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "struct_decls/struct_020508D4_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_02049FA8.h" -#include "struct_defs/struct_02081CF4.h" #include "field/field_system.h" #include "overlay005/ov5_021E15F4.h" @@ -39,23 +35,24 @@ #include "core_sys.h" #include "field_map_change.h" #include "field_system.h" +#include "font.h" #include "game_records.h" #include "graphics.h" #include "heap.h" #include "journal.h" #include "map_object_move.h" +#include "menu.h" #include "message.h" #include "player_avatar.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "sys_task.h" #include "sys_task_manager.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_0202854C.h" #include "unk_02030EE0.h" #include "unk_02033200.h" @@ -126,7 +123,7 @@ typedef struct { typedef struct { FieldSystem *fieldSystem; - UIControlData *unk_04; + Menu *unk_04; SysTask *unk_08; int unk_0C; int unk_10; @@ -147,7 +144,7 @@ typedef struct { typedef struct { FieldSystem *fieldSystem; SysTask *unk_04; - UIControlData *unk_08; + Menu *unk_08; int unk_0C; u8 unk_10; u8 unk_11; @@ -809,7 +806,7 @@ static void ov23_0224BA48(SysTask *param0, void *param1) UnkStruct_ov23_0224BA48 *v0 = param1; if (v0->unk_04) { - sub_02002154(v0->unk_04, 4); + Menu_DestroyForExit(v0->unk_04, 4); } SysTask_Done(param0); @@ -824,7 +821,7 @@ static void ov23_0224BA6C(SysTask *param0, void *param1) UnkStruct_ov23_0224B730 v1; if (v0->unk_04) { - sub_02002154(v0->unk_04, 4); + Menu_DestroyForExit(v0->unk_04, 4); } v1.unk_01 = 0; @@ -861,12 +858,12 @@ static void ov23_0224BAAC(SysTask *param0, void *param1) break; case 1: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_04 = sub_02002100(fieldSystem->unk_08, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_04 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 2; } break; case 2: - v6 = sub_02002114(v0->unk_04, 4); + v6 = Menu_ProcessInputAndHandleExit(v0->unk_04, 4); if (v6 == 0) { v0->unk_04 = NULL; @@ -878,12 +875,12 @@ static void ov23_0224BAAC(SysTask *param0, void *param1) break; case 3: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_04 = sub_02002100(fieldSystem->unk_08, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_04 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 4; } break; case 4: - v6 = sub_02002114(v0->unk_04, 4); + v6 = Menu_ProcessInputAndHandleExit(v0->unk_04, 4); if (v6 == 0) { v0->unk_04 = NULL; @@ -896,12 +893,12 @@ static void ov23_0224BAAC(SysTask *param0, void *param1) break; case 5: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_04 = sub_02002100(fieldSystem->unk_08, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_04 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 6; } break; case 6: - v6 = sub_02002114(v0->unk_04, 4); + v6 = Menu_ProcessInputAndHandleExit(v0->unk_04, 4); if (v6 == 0) { v0->unk_04 = NULL; @@ -963,7 +960,7 @@ static UnkStruct_ov23_0224BA48 *ov23_0224BCC4(FieldSystem *fieldSystem, int para { UnkStruct_ov23_0224BA48 *v0 = NULL; - if (fieldSystem->unk_10 == NULL) { + if (fieldSystem->taskManager == NULL) { v0 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_ov23_0224BA48)); MI_CpuClear8(v0, sizeof(UnkStruct_ov23_0224BA48)); @@ -1013,30 +1010,30 @@ static int ov23_0224BD1C(int param0, BOOL param1) return v1; } -static UIControlData *ov23_0224BD90(BgConfig *param0, const WindowTemplate *param1, u16 param2, u8 param3, u32 param4) +static Menu *ov23_0224BD90(BgConfig *param0, const WindowTemplate *param1, u16 param2, u8 param3, u32 param4) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; MessageLoader *v1 = ov23_02253E3C(ov23_0224219C()); - ResourceMetadata *v2; + StringList *v2; - v2 = sub_02013A04(2, param4); + v2 = StringList_New(2, param4); - sub_02013A4C(v2, v1, 38, 0); - sub_02013A4C(v2, v1, 39, 1); + StringList_AddFromMessageBank(v2, v1, 38, 0); + StringList_AddFromMessageBank(v2, v1, 39, 1); - v0.unk_00 = v2; - v0.unk_04 = Window_New(param4, 1); - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_0 = 0; + v0.choices = v2; + v0.window = Window_New(param4, 1); + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 2; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.lineSpacing = 0; - Window_AddFromTemplate(param0, v0.unk_04, param1); - Window_Show(v0.unk_04, 1, param2, param3); + Window_AddFromTemplate(param0, v0.window, param1); + Window_DrawStandardFrame(v0.window, 1, param2, param3); - return sub_02001B7C(&v0, 8, 0, 0, param4, PAD_BUTTON_B); + return Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, param4, PAD_BUTTON_B); } static void ov23_0224BE28(SysTask *param0, void *param1) @@ -1061,12 +1058,12 @@ static void ov23_0224BE28(SysTask *param0, void *param1) break; case 1: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_04 = sub_02002100(fieldSystem->unk_08, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_04 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 2; } break; case 2: - v6 = sub_02002114(v0->unk_04, 4); + v6 = Menu_ProcessInputAndHandleExit(v0->unk_04, 4); if (v6 == 0) { v0->unk_04 = NULL; @@ -1083,12 +1080,12 @@ static void ov23_0224BE28(SysTask *param0, void *param1) break; case 4: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_04 = sub_02002100(fieldSystem->unk_08, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_04 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 5; } break; case 5: - v6 = sub_02002114(v0->unk_04, 4); + v6 = Menu_ProcessInputAndHandleExit(v0->unk_04, 4); if (v6 == 0) { v0->unk_04 = NULL; @@ -1107,12 +1104,12 @@ static void ov23_0224BE28(SysTask *param0, void *param1) break; case 6: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_04 = ov23_0224BD90(fieldSystem->unk_08, &Unk_ov23_0225686C, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_04 = ov23_0224BD90(fieldSystem->bgConfig, &Unk_ov23_0225686C, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 7; } break; case 7: - v6 = sub_02002114(v0->unk_04, 4); + v6 = Menu_ProcessInputAndHandleExit(v0->unk_04, 4); if (v6 == 0) { v0->unk_04 = NULL; @@ -1590,13 +1587,13 @@ static BOOL ov23_0224C790(TaskManager *param0) break; case 1: sub_0200F2C0(); - sub_0200F174(2, 16, 18, 0x0, 6, 1, 4); + StartScreenTransition(2, 16, 18, 0x0, 6, 1, 4); ov23_0224942C(fieldSystem->unk_6C); Sound_PlayEffect(1539); v1->unk_0C++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (fieldSystem->unk_6C == NULL) { (v1->unk_0C)++; } @@ -1624,11 +1621,11 @@ static BOOL ov23_0224C790(TaskManager *param0) case 6: fieldSystem->unk_6C = ov23_02249404(fieldSystem); sub_0200F2C0(); - sub_0200F174(1, 17, 19, 0x0, 6, 1, 4); + StartScreenTransition(1, 17, 19, 0x0, 6, 1, 4); (v1->unk_0C)++; break; case 7: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { break; } @@ -1642,7 +1639,7 @@ static BOOL ov23_0224C790(TaskManager *param0) sub_020594FC(); Graphics_LoadPalette(50, 52, 0, 10 * 0x20, 4 * 0x20, 4); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 2, 4); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 2, 4); if (v1->unk_2D) { sub_020594EC(); @@ -1814,12 +1811,12 @@ static void ov23_0224CB1C(SysTask *param0, void *param1) break; case 5: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_08 = sub_02002100(fieldSystem->unk_08, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_08 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_ov23_02256864, 1024 - (18 + 12) - 9, 11, 4); v0->unk_0C = 6; } break; case 6: - v3 = sub_02002114(v0->unk_08, 4); + v3 = Menu_ProcessInputAndHandleExit(v0->unk_08, 4); if (v3 == 0) { v0->unk_0C = 9; @@ -1954,7 +1951,7 @@ static void ov23_0224CE94(SysTask *param0, void *param1) ov23_0224C6AC(16); if (v0->unk_08) { - sub_02002154(v0->unk_08, 4); + Menu_DestroyForExit(v0->unk_08, 4); } SysTask_Done(param0); @@ -2387,7 +2384,7 @@ static void ov23_0224D5BC(SysTask *param0, void *param1) } break; case 3: - sub_0200F174(2, 0, 0, 0x0, 6, 1, 4); + StartScreenTransition(2, 0, 0, 0x0, 6, 1, 4); break; case 4: Heap_FreeToHeap(param1); diff --git a/src/overlay023/ov23_0224DC40.c b/src/overlay023/ov23_0224DC40.c index b89e332d1d..621010fd5d 100644 --- a/src/overlay023/ov23_0224DC40.c +++ b/src/overlay023/ov23_0224DC40.c @@ -5,11 +5,6 @@ #include "consts/game_records.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" - #include "field/field_system.h" #include "overlay023/funcptr_ov23_0224DCB8.h" #include "overlay023/ov23_02241F74.h" @@ -17,7 +12,6 @@ #include "overlay023/ov23_02253598.h" #include "overlay023/ov23_02253D40.h" #include "overlay023/struct_ov23_02250CD4.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "comm_player_manager.h" @@ -27,15 +21,15 @@ #include "field_system.h" #include "game_records.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" +#include "render_window.h" +#include "string_list.h" #include "sys_task.h" #include "sys_task_manager.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0201D15C.h" #include "unk_0202854C.h" #include "unk_020573FC.h" @@ -64,9 +58,9 @@ typedef struct { UnkStruct_ov23_02250CD4 *unk_04; FieldSystem *fieldSystem; Window unk_0C; - ResourceMetadata *unk_1C; - BmpList *unk_20; - UIControlData *unk_24; + StringList *unk_1C; + ListMenu *unk_20; + Menu *unk_24; UnkStruct_ov23_0224F184 unk_28; UnkFuncPtr_ov23_0224DCB8 unk_2C; u16 unk_30; @@ -86,9 +80,9 @@ typedef struct { SysTask *unk_00; FieldSystem *fieldSystem; Window unk_08; - ResourceMetadata *unk_18; - BmpList *unk_1C; - UIControlData *unk_20; + StringList *unk_18; + ListMenu *unk_1C; + Menu *unk_20; UnkStruct_ov23_0224F184 unk_24; UnkFuncPtr_ov23_0224DCB8 unk_28; u16 unk_2C; @@ -126,7 +120,7 @@ static const struct { { 0x6, (u32)ov23_0224E8E0 } }; -static const UnkStruct_ov84_02240FA8 Unk_ov23_02256894 = { +static const ListMenuTemplate Unk_ov23_02256894 = { NULL, NULL, NULL, @@ -211,7 +205,7 @@ static void ov23_0224DC90(UnkStruct_ov23_022577B0 *param0, int param1) void ov23_0224DCB8(int param0, UnkFuncPtr_ov23_0224DCB8 param1, FieldSystem *fieldSystem) { UnkStruct_ov23_0224E280 *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; v0 = Heap_AllocFromHeap(33, sizeof(UnkStruct_ov23_0224E280)); MI_CpuFill8(v0, 0, sizeof(UnkStruct_ov23_0224E280)); @@ -235,12 +229,12 @@ void ov23_0224DCB8(int param0, UnkFuncPtr_ov23_0224DCB8 param1, FieldSystem *fie static void ov23_0224DD2C(UnkStruct_ov23_0224E280 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; - param0->unk_1C = sub_02013A04(NELEMS(Unk_ov23_022568B4), 4); + param0->unk_1C = StringList_New(NELEMS(Unk_ov23_022568B4), 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_0C, 3, 1, 1, 10, NELEMS(Unk_ov23_022568B4) * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (10 * NELEMS(Unk_ov23_022568B4) * 2)); - Window_Show(¶m0->unk_0C, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_0C, 3, 1, 1, 10, NELEMS(Unk_ov23_022568B4) * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (10 * NELEMS(Unk_ov23_022568B4) * 2)); + Window_DrawStandardFrame(¶m0->unk_0C, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v1; @@ -249,21 +243,21 @@ static void ov23_0224DD2C(UnkStruct_ov23_0224E280 *param0) v1 = MessageLoader_Init(0, 26, 634, 4); for (v2 = 0; v2 < NELEMS(Unk_ov23_022568B4); v2++) { - sub_02013A4C(param0->unk_1C, v1, Unk_ov23_022568B4[v2].unk_00, Unk_ov23_022568B4[v2].unk_04); + StringList_AddFromMessageBank(param0->unk_1C, v1, Unk_ov23_022568B4[v2].unk_00, Unk_ov23_022568B4[v2].unk_04); } MessageLoader_Free(v1); } - MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(ListMenuTemplate)); - v0.unk_00 = param0->unk_1C; - v0.unk_0C = ¶m0->unk_0C; - v0.unk_10 = NELEMS(Unk_ov23_022568B4); - v0.unk_12 = NELEMS(Unk_ov23_022568B4); + v0.choices = param0->unk_1C; + v0.window = ¶m0->unk_0C; + v0.count = NELEMS(Unk_ov23_022568B4); + v0.maxDisplay = NELEMS(Unk_ov23_022568B4); param0->unk_3A = 0; - param0->unk_20 = sub_0200112C(&v0, 0, 0, 4); + param0->unk_20 = ListMenu_New(&v0, 0, 0, 4); Window_CopyToVRAM(¶m0->unk_0C); sub_020594FC(); @@ -272,7 +266,7 @@ static void ov23_0224DD2C(UnkStruct_ov23_0224E280 *param0) static void ov23_0224DDE4(SysTask *param0, UnkStruct_ov23_0224E280 *param1) { if (param1->unk_24) { - sub_02002154(param1->unk_24, 4); + Menu_DestroyForExit(param1->unk_24, 4); param1->unk_24 = NULL; } @@ -296,12 +290,12 @@ static void ov23_0224DDE4(SysTask *param0, UnkStruct_ov23_0224E280 *param1) static void ov23_0224DE3C(UnkStruct_ov23_0224E280 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; - param0->unk_1C = sub_02013A04(4, 4); + param0->unk_1C = StringList_New(4, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_0C, 3, 1, 1, 16, 4 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (16 * 4 * 2)); - Window_Show(¶m0->unk_0C, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_0C, 3, 1, 1, 16, 4 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (16 * 4 * 2)); + Window_DrawStandardFrame(¶m0->unk_0C, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v1; @@ -321,7 +315,7 @@ static void ov23_0224DE3C(UnkStruct_ov23_0224E280 *param0) if (v3 == v2) { v4[v2] = v5; - sub_02013A4C(param0->unk_1C, v1, 0 + v5, v5); + StringList_AddFromMessageBank(param0->unk_1C, v1, 0 + v5, v5); } else { v2--; } @@ -331,11 +325,11 @@ static void ov23_0224DE3C(UnkStruct_ov23_0224E280 *param0) } v0 = Unk_ov23_02256894; - v0.unk_00 = param0->unk_1C; - v0.unk_0C = ¶m0->unk_0C; + v0.choices = param0->unk_1C; + v0.window = ¶m0->unk_0C; param0->unk_3A = 0; - param0->unk_20 = sub_0200112C(&v0, 0, 0, 4); + param0->unk_20 = ListMenu_New(&v0, 0, 0, 4); Window_CopyToVRAM(¶m0->unk_0C); } @@ -346,7 +340,7 @@ static BOOL ov23_0224DF1C(SysTask *param0, void *param1) u32 v1; u16 v2; - v1 = sub_02001288(v0->unk_20); + v1 = ListMenu_ProcessInput(v0->unk_20); ov23_0224F270(v0); if (CommSys_CheckError()) { @@ -384,12 +378,12 @@ static BOOL ov23_0224DF1C(SysTask *param0, void *param1) static void ov23_0224DFA0(UnkStruct_ov23_0224E280 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; - param0->unk_1C = sub_02013A04(4, 4); + param0->unk_1C = StringList_New(4, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_0C, 3, 1, 1, 16, 4 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (16 * 4 * 2)); - Window_Show(¶m0->unk_0C, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_0C, 3, 1, 1, 16, 4 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (16 * 4 * 2)); + Window_DrawStandardFrame(¶m0->unk_0C, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v1; @@ -400,18 +394,18 @@ static void ov23_0224DFA0(UnkStruct_ov23_0224E280 *param0) for (v2 = 0; v2 < 4; v2++) { u32 v3 = 4 * param0->unk_32 + v2; - sub_02013A4C(param0->unk_1C, v1, 0 + v3, v2); + StringList_AddFromMessageBank(param0->unk_1C, v1, 0 + v3, v2); } MessageLoader_Free(v1); } v0 = Unk_ov23_02256894; - v0.unk_00 = param0->unk_1C; - v0.unk_0C = ¶m0->unk_0C; + v0.choices = param0->unk_1C; + v0.window = ¶m0->unk_0C; param0->unk_3A = 0; - param0->unk_20 = sub_0200112C(&v0, 0, 0, 4); + param0->unk_20 = ListMenu_New(&v0, 0, 0, 4); Window_CopyToVRAM(¶m0->unk_0C); } @@ -422,7 +416,7 @@ static BOOL ov23_0224E05C(SysTask *param0, void *param1) u32 v1; UnkStruct_ov23_0224DF1C v2; - v1 = sub_02001288(v0->unk_20); + v1 = ListMenu_ProcessInput(v0->unk_20); ov23_0224F270(v0); if (CommSys_CheckError()) { @@ -480,7 +474,7 @@ static void ov23_0224E19C(SysTask *param0, UnkStruct_ov23_0224E280 *param1) { u32 v0; - v0 = sub_02002114(param1->unk_24, 4); + v0 = Menu_ProcessInputAndHandleExit(param1->unk_24, 4); if (v0 == 0xffffffff) { return; @@ -503,7 +497,7 @@ static BOOL ov23_0224E1E0(SysTask *param0, void *param1) UnkStruct_ov23_0224E280 *v0 = param1; u32 v1; - v1 = sub_02001288(v0->unk_20); + v1 = ListMenu_ProcessInput(v0->unk_20); ov23_0224F270(v0); if (CommSys_CheckError()) { @@ -535,11 +529,11 @@ static BOOL ov23_0224E1E0(SysTask *param0, void *param1) static void ov23_0224E244(SysTask *param0, UnkStruct_ov23_0224E280 *param1) { if (param1->unk_1C) { - Window_Clear(¶m1->unk_0C, 1); - sub_02001384(param1->unk_20, NULL, NULL); + Window_EraseStandardFrame(¶m1->unk_0C, 1); + ListMenu_Free(param1->unk_20, NULL, NULL); Window_ClearAndCopyToVRAM(¶m1->unk_0C); Window_Remove(¶m1->unk_0C); - sub_02013A3C(param1->unk_1C); + StringList_Free(param1->unk_1C); param1->unk_1C = NULL; } } @@ -634,7 +628,7 @@ static void ov23_0224E2D8(SysTask *param0, void *param1) case 9: if (ov23_022539D8()) { ov23_02254044(ov23_0224219C()); - ov23_02253834(v0->fieldSystem->unk_08, CommInfo_TrainerInfo(v0->unk_30), ov23_0224E2D0, v0, 0); + ov23_02253834(v0->fieldSystem->bgConfig, CommInfo_TrainerInfo(v0->unk_30), ov23_0224E2D0, v0, 0); v0->unk_37 = 10; } break; @@ -696,7 +690,7 @@ static void ov23_0224E2D8(SysTask *param0, void *param1) break; case 19: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_24 = sub_02002100(v0->fieldSystem->unk_08, &Unk_ov23_0225688C, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_24 = Menu_MakeYesNoChoice(v0->fieldSystem->bgConfig, &Unk_ov23_0225688C, 1024 - (18 + 12) - 9, 11, 4); v0->unk_37 = 20; if (v0->unk_38 != 8) { @@ -848,7 +842,7 @@ static void ov23_0224E2D8(SysTask *param0, void *param1) } if (v0->unk_24) { - sub_02002154(v0->unk_24, 4); + Menu_DestroyForExit(v0->unk_24, 4); v0->unk_24 = NULL; } @@ -878,7 +872,7 @@ static void ov23_0224E8FC(SysTask *param0, UnkStruct_ov23_022577B0 *param1) { u32 v0; - v0 = sub_02002114(param1->unk_20, 4); + v0 = Menu_ProcessInputAndHandleExit(param1->unk_20, 4); if (v0 == 0xffffffff) { return; @@ -900,7 +894,7 @@ static void ov23_0224E93C(SysTask *param0, UnkStruct_ov23_022577B0 *param1) { u32 v0; - v0 = sub_02002114(param1->unk_20, 4); + v0 = Menu_ProcessInputAndHandleExit(param1->unk_20, 4); if (v0 == 0xffffffff) { return; @@ -932,7 +926,7 @@ static void ov23_0224E93C(SysTask *param0, UnkStruct_ov23_022577B0 *param1) static void ov23_0224E9C4(SysTask *param0, UnkStruct_ov23_022577B0 *param1) { if (param1->unk_20) { - sub_02002154(param1->unk_20, 4); + Menu_DestroyForExit(param1->unk_20, 4); param1->unk_20 = NULL; } @@ -952,11 +946,11 @@ static void ov23_0224E9C4(SysTask *param0, UnkStruct_ov23_022577B0 *param1) static void ov23_0224EA08(SysTask *param0, UnkStruct_ov23_022577B0 *param1) { if (param1->unk_18) { - Window_Clear(¶m1->unk_08, 1); - sub_02001384(param1->unk_1C, NULL, NULL); + Window_EraseStandardFrame(¶m1->unk_08, 1); + ListMenu_Free(param1->unk_1C, NULL, NULL); Window_ClearAndCopyToVRAM(¶m1->unk_08); Window_Remove(¶m1->unk_08); - sub_02013A3C(param1->unk_18); + StringList_Free(param1->unk_18); param1->unk_18 = NULL; } @@ -977,13 +971,13 @@ static void ov23_0224EA70(UnkStruct_ov23_022577B0 *param0) static void ov23_0224EAA4(UnkStruct_ov23_022577B0 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; const int v1 = 4 + 1; - param0->unk_18 = sub_02013A04(v1, 4); + param0->unk_18 = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, 1, 1, 16, v1 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (16 * v1 * 2)); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, 1, 1, 16, v1 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (16 * v1 * 2)); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v2; int v3; @@ -993,21 +987,21 @@ static void ov23_0224EAA4(UnkStruct_ov23_022577B0 *param0) for (v3 = 0; v3 < 4; v3++) { u32 v4 = 4 * param0->unk_2E + v3; - sub_02013A4C(param0->unk_18, v2, 0 + v4, v3); + StringList_AddFromMessageBank(param0->unk_18, v2, 0 + v4, v3); } - sub_02013A4C(param0->unk_18, v2, 48, 51); + StringList_AddFromMessageBank(param0->unk_18, v2, 48, 51); MessageLoader_Free(v2); } v0 = Unk_ov23_02256894; - v0.unk_00 = param0->unk_18; - v0.unk_0C = ¶m0->unk_08; - v0.unk_10 = v1; - v0.unk_12 = v1; + v0.choices = param0->unk_18; + v0.window = ¶m0->unk_08; + v0.count = v1; + v0.maxDisplay = v1; param0->unk_36 = 0; - param0->unk_1C = sub_0200112C(&v0, 0, 0, 4); + param0->unk_1C = ListMenu_New(&v0, 0, 0, 4); Window_CopyToVRAM(¶m0->unk_08); } @@ -1019,10 +1013,10 @@ static BOOL ov23_0224EB74(SysTask *param0, void *param1) UnkStruct_ov23_0224DF1C v2; u16 v3; - v1 = sub_02001288(v0->unk_1C); + v1 = ListMenu_ProcessInput(v0->unk_1C); v3 = v0->unk_36; - sub_020014D0(v0->unk_1C, &v0->unk_36); + ListMenu_CalcTrueCursorPos(v0->unk_1C, &v0->unk_36); if (v3 != v0->unk_36) { Sound_PlayEffect(1500); @@ -1106,7 +1100,7 @@ static void ov23_0224EC50(SysTask *param0, void *param1) case 6: if (ov23_02254238(ov23_0224219C()) == 0) { v0->unk_34 = 7; - v0->unk_20 = sub_02002100(v0->fieldSystem->unk_08, &Unk_ov23_0225688C, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_20 = Menu_MakeYesNoChoice(v0->fieldSystem->bgConfig, &Unk_ov23_0225688C, 1024 - (18 + 12) - 9, 11, 4); } break; case 7: @@ -1126,7 +1120,7 @@ static void ov23_0224EC50(SysTask *param0, void *param1) case 10: if (ov23_022539D8()) { ov23_02254044(ov23_0224219C()); - ov23_02253834(v0->fieldSystem->unk_08, CommInfo_TrainerInfo(v0->unk_2C), ov23_0224EC48, v0, 0); + ov23_02253834(v0->fieldSystem->bgConfig, CommInfo_TrainerInfo(v0->unk_2C), ov23_0224EC48, v0, 0); v0->unk_34 = 11; } break; @@ -1161,7 +1155,7 @@ static void ov23_0224EC50(SysTask *param0, void *param1) case 17: if (ov23_02254238(ov23_0224219C()) == 0) { v0->unk_34 = 18; - v0->unk_20 = sub_02002100(v0->fieldSystem->unk_08, &Unk_ov23_0225688C, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_20 = Menu_MakeYesNoChoice(v0->fieldSystem->bgConfig, &Unk_ov23_0225688C, 1024 - (18 + 12) - 9, 11, 4); } break; case 18: @@ -1261,7 +1255,7 @@ static void ov23_0224EC50(SysTask *param0, void *param1) } if (v0->unk_20) { - sub_02002154(v0->unk_20, 4); + Menu_DestroyForExit(v0->unk_20, 4); v0->unk_20 = NULL; } @@ -1418,7 +1412,7 @@ static void ov23_0224F270(UnkStruct_ov23_0224E280 *param0) u16 v0; v0 = param0->unk_3A; - sub_020014D0(param0->unk_20, ¶m0->unk_3A); + ListMenu_CalcTrueCursorPos(param0->unk_20, ¶m0->unk_3A); if (v0 != param0->unk_3A) { Sound_PlayEffect(1500); diff --git a/src/overlay023/ov23_0224F294.c b/src/overlay023/ov23_0224F294.c index 2acc6f03b6..a87fbaef3c 100644 --- a/src/overlay023/ov23_0224F294.c +++ b/src/overlay023/ov23_0224F294.c @@ -3,10 +3,8 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "struct_defs/sprite_template.h" -#include "struct_defs/struct_02081CF4.h" #include "field/field_system.h" #include "overlay005/ov5_021D2F14.h" @@ -28,7 +26,6 @@ #include "overlay023/ov23_02253598.h" #include "overlay023/ov23_02253D40.h" #include "overlay023/struct_ov23_02250CD4.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay104/struct_ov104_02241308.h" #include "bag.h" @@ -39,24 +36,25 @@ #include "core_sys.h" #include "field_map_change.h" #include "field_system.h" +#include "font.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "player_avatar.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200A9DC.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0202854C.h" #include "unk_0206A780.h" @@ -128,7 +126,7 @@ static const struct { { 0x7F, (u32)ov23_02250930 } }; -static const UnkStruct_ov84_02240FA8 Unk_ov23_02256904 = { +static const ListMenuTemplate Unk_ov23_02256904 = { NULL, NULL, NULL, @@ -422,7 +420,7 @@ BOOL ov23_0224F744(int param0) void ov23_0224F758(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem) { UnkStruct_ov23_02250CD4 *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; Sound_PlayEffect(1533); ov23_022430D0(2); @@ -472,16 +470,16 @@ static u32 ov23_0224F7D4(u8 *param0) static void ov23_0224F7F4(UnkStruct_ov23_02250CD4 *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; const int v1 = 4; u8 v2[7]; int v3; v3 = ov23_0224F7D4(v2); - param0->unk_40 = sub_02013A04(NELEMS(Unk_ov23_02256924), 4); + param0->unk_40 = StringList_New(NELEMS(Unk_ov23_02256924), 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 20, 1, 11, NELEMS(Unk_ov23_02256924) * 3, 13, (1024 - (18 + 12) - 9 - 11 * 22)); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 20, 1, 11, NELEMS(Unk_ov23_02256924) * 3, 13, (1024 - (18 + 12) - 9 - 11 * 22)); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v3; @@ -494,31 +492,31 @@ static void ov23_0224F7F4(UnkStruct_ov23_02250CD4 *param0) const TrainerInfo *v5 = SaveData_GetTrainerInfo(FieldSystem_SaveData(param0->fieldSystem)); Strbuf *v6 = TrainerInfo_NameNewStrbuf(v5, 4); - sub_02013A6C(param0->unk_40, v6, Unk_ov23_02256924[v4].unk_04); + StringList_AddFromStrbuf(param0->unk_40, v6, Unk_ov23_02256924[v4].unk_04); Strbuf_Free(v6); } else { - sub_02013A4C(param0->unk_40, v3, Unk_ov23_02256924[v4].unk_00, Unk_ov23_02256924[v4].unk_04); + StringList_AddFromMessageBank(param0->unk_40, v3, Unk_ov23_02256924[v4].unk_00, Unk_ov23_02256924[v4].unk_04); } } } param0->unk_29C = param0->fieldSystem->unk_90; - v0.unk_00 = param0->unk_40; - v0.unk_04 = ¶m0->unk_10; - v0.unk_08 = 1; - v0.unk_09 = 1; - v0.unk_0A = NELEMS(Unk_ov23_02256924); - v0.unk_0B_0 = 8; - v0.unk_0B_4 = 1; + v0.choices = param0->unk_40; + v0.window = ¶m0->unk_10; + v0.fontID = FONT_MESSAGE; + v0.xSize = 1; + v0.ySize = NELEMS(Unk_ov23_02256924); + v0.lineSpacing = 8; + v0.suppressCursor = TRUE; if (NELEMS(Unk_ov23_02256924) >= 4) { - v0.unk_0B_6 = 1; + v0.loopAround = TRUE; } else { - v0.unk_0B_6 = 0; + v0.loopAround = FALSE; } - param0->unk_54 = sub_02001AF4(&v0, 28, 4, param0->unk_29C, 11, PAD_BUTTON_B | PAD_BUTTON_X); + param0->unk_54 = Menu_New(&v0, 28, 4, param0->unk_29C, 11, PAD_BUTTON_B | PAD_BUTTON_X); param0->unk_48 = NULL; Window_ScheduleCopyToVRAM(¶m0->unk_10); @@ -618,9 +616,9 @@ static BOOL ov23_0224FA58(SysTask *param0, void *param1) UnkStruct_ov23_02250CD4 *v0 = param1; u16 v1; - v1 = sub_02001DC4(v0->unk_54); - v0->unk_2A0 = sub_02001C94(v0->unk_54, 1504); - v0->unk_29C = sub_02001DC4(v0->unk_54); + v1 = Menu_GetCursorPos(v0->unk_54); + v0->unk_2A0 = Menu_ProcessInputWithSound(v0->unk_54, 1504); + v0->unk_29C = Menu_GetCursorPos(v0->unk_54); if (v1 != v0->unk_29C) { ov23_0224F4D0(v0->unk_23C[0]->unk_00, v0->unk_29C); @@ -652,7 +650,7 @@ static BOOL ov23_0224FA58(SysTask *param0, void *param1) if (v0->unk_25C) { ov23_0224F460(v0); - sub_02001BC4(v0->unk_54, NULL); + Menu_Free(v0->unk_54, NULL); v0->unk_25C = 0; } @@ -674,19 +672,19 @@ void ov23_0224FB7C(UnkStruct_ov23_02250CD4 *param0) } if (param0->unk_48) { - sub_02001384(param0->unk_48, NULL, NULL); + ListMenu_Free(param0->unk_48, NULL, NULL); param0->unk_48 = NULL; } else if (param0->unk_25C) { ov23_0224F460(param0); - sub_02001BC4(param0->unk_54, NULL); + Menu_Free(param0->unk_54, NULL); param0->unk_25C = 0; } if (Window_IsInUse(¶m0->unk_10)) { - Window_Clear(¶m0->unk_10, 1); + Window_EraseStandardFrame(¶m0->unk_10, 1); Bg_ScheduleTilemapTransfer(param0->unk_10.bgConfig, param0->unk_10.bgLayer); Window_Remove(¶m0->unk_10); - sub_02013A3C(param0->unk_40); + StringList_Free(param0->unk_40); ov23_02252DF4(param0); } } @@ -710,7 +708,7 @@ static UnkStruct_ov23_02257644 Unk_ov23_0225765C[] = { static void ov23_0224FBFC(UnkStruct_ov23_02250CD4 *param0, int param1) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1, v2; int v3 = 11; int v4 = 6; @@ -735,10 +733,10 @@ static void ov23_0224FBFC(UnkStruct_ov23_02250CD4 *param0, int param1) break; } - param0->unk_44 = sub_02013A04(v1, 4); + param0->unk_44 = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_20, 3, v5, v3, v4, v1 * 2, 13, (1024 - (18 + 12) - 9 - 11 * 22)); - Window_Show(¶m0->unk_20, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_20, 3, v5, v3, v4, v1 * 2, 13, (1024 - (18 + 12) - 9 - 11 * 22)); + Window_DrawStandardFrame(¶m0->unk_20, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v7; @@ -747,33 +745,33 @@ static void ov23_0224FBFC(UnkStruct_ov23_02250CD4 *param0, int param1) v7 = ov23_02253E3C(ov23_0224219C()); for (v8 = 0; v8 < v1; v8++) { - sub_02013A4C(param0->unk_44, v7, v6->unk_00, v6->unk_04); + StringList_AddFromMessageBank(param0->unk_44, v7, v6->unk_00, v6->unk_04); v6++; } } v0 = Unk_ov23_02256904; - v0.unk_10 = v1; - v0.unk_12 = v1; - v0.unk_00 = param0->unk_44; - v0.unk_0C = ¶m0->unk_20; - v0.unk_1C = param0; + v0.count = v1; + v0.maxDisplay = v1; + v0.choices = param0->unk_44; + v0.window = ¶m0->unk_20; + v0.tmp = param0; - param0->unk_50 = sub_0200112C(&v0, 0, 0, 4); + param0->unk_50 = ListMenu_New(&v0, 0, 0, 4); } static void ov23_0224FCF4(UnkStruct_ov23_02250CD4 *param0) { if (param0->unk_50) { - sub_02001384(param0->unk_50, NULL, NULL); + ListMenu_Free(param0->unk_50, NULL, NULL); Bg_ScheduleTilemapTransfer(param0->unk_20.bgConfig, param0->unk_20.bgLayer); - sub_02013A3C(param0->unk_44); + StringList_Free(param0->unk_44); param0->unk_50 = NULL; } if (Window_IsInUse(¶m0->unk_20)) { - Window_Clear(¶m0->unk_20, 1); + Window_EraseStandardFrame(¶m0->unk_20, 1); Window_Remove(¶m0->unk_20); } } @@ -798,9 +796,9 @@ void ov23_0224FD68(int param0) } } -void ov23_0224FD84(BmpList *param0, u32 param1, u8 param2) +void ov23_0224FD84(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); UnkFuncPtr_ov23_0224FD84 v1 = v0->unk_268; int v2 = param1; int v3 = v1(v2, v0); @@ -840,17 +838,17 @@ static void ov23_0224FE38(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 { UnkFuncPtr_ov23_0224FE38 v0 = param0->unk_264; UnkFuncPtr_ov23_0224FD84 v1 = param0->unk_268; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; int v3 = v0(param0); int v4 = 6; ov23_0224FB7C(param0); ov23_02253DFC(ov23_022421DC(), 630, 0); - param0->unk_40 = sub_02013A04(v3 + 1, 4); + param0->unk_40 = StringList_New(v3 + 1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v5; @@ -859,22 +857,22 @@ static void ov23_0224FE38(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 v5 = ov23_02253E3C(ov23_022421DC()); for (v6 = 0; v6 < v3; v6++) { - sub_02013A4C(param0->unk_40, v5, v1(v6, param0), v6); + StringList_AddFromMessageBank(param0->unk_40, v5, v1(v6, param0), v6); } - sub_02013A4C(param0->unk_40, v5, 34, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v5, 34, 0xfffffffe); } v2 = Unk_ov23_02256904; - v2.unk_10 = v3 + 1; - v2.unk_12 = v4; - v2.unk_00 = param0->unk_40; - v2.unk_0C = ¶m0->unk_10; - v2.unk_04 = param0->unk_60; - v2.unk_08 = param0->unk_64; - v2.unk_1C = param0; + v2.count = v3 + 1; + v2.maxDisplay = v4; + v2.choices = param0->unk_40; + v2.window = ¶m0->unk_10; + v2.cursorCallback = param0->unk_60; + v2.printCallback = param0->unk_64; + v2.tmp = param0; - ov23_02251238(param0, v4, v2.unk_10); + ov23_02251238(param0, v4, v2.count); param0->unk_4C = ov23_02248C08(&v2, param0->unk_294, param0->unk_290, 4, param1, Unk_ov23_022577B8->unk_00, 0); param0->unk_2AA = 5; @@ -888,7 +886,7 @@ static BOOL ov23_0224FF58(SysTask *param0, void *param1) v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v2, &v3); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v2, &v3); ov23_022430E0(8, v3, v2); if (CommSys_CheckError()) { @@ -901,7 +899,7 @@ static BOOL ov23_0224FF58(SysTask *param0, void *param1) switch (v1) { case 0xffffffff: - ov23_0225128C(v0, v2, sub_02001504(v0->unk_4C->unk_0C, 2), 6); + ov23_0225128C(v0, v2, ListMenu_GetAttribute(v0->unk_4C->unk_0C, 2), 6); return 0; case 0xfffffffe: ov23_0224FD3C(v0); @@ -939,10 +937,10 @@ static BOOL ov23_02250048(SysTask *param0, void *param1) u32 v1; u16 v2; - v1 = sub_02001288(v0->unk_50); + v1 = ListMenu_ProcessInput(v0->unk_50); v2 = v0->unk_2B0; - sub_020014D0(v0->unk_50, &v0->unk_2B0); + ListMenu_CalcTrueCursorPos(v0->unk_50, &v0->unk_2B0); if (v2 != v0->unk_2B0) { Sound_PlayEffect(1500); @@ -987,9 +985,9 @@ void ov23_02250128(int param0) sub_02028C6C(Unk_ov23_022577B8->unk_00, Unk_ov23_022577B8->unk_04); } -static void ov23_0225014C(BmpList *param0, u32 param1, u8 param2) +static void ov23_0225014C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); UnkFuncPtr_ov23_0224FD84 v1 = v0->unk_268; int v2 = param1; int v3 = v1(v2, v0); @@ -1031,17 +1029,17 @@ static void ov23_0225021C(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 UnkFuncPtr_ov23_0224FE38 v0 = param0->unk_264; UnkFuncPtr_ov23_0224FD84 v1 = param0->unk_268; UnkFuncPtr_ov23_0225021C v2 = param0->unk_26C; - UnkStruct_ov84_02240FA8 v3; + ListMenuTemplate v3; int v4 = v0(param0); int v5 = 6; ov23_0224FB7C(param0); ov23_02253DFC(ov23_022421DC(), 628, 0); - param0->unk_40 = sub_02013A04(v4 + 1, 4); + param0->unk_40 = StringList_New(v4 + 1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v6; @@ -1054,21 +1052,21 @@ static void ov23_0225021C(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 StringTemplate_SetNumber(param0->unk_70, 6, v2(v7, param0), 2, 2, 1); MessageLoader_GetStrbuf(ov23_02253E3C(ov23_0224219C()), 128, param0->unk_6C); StringTemplate_Format(param0->unk_70, param0->unk_68, param0->unk_6C); - sub_02013A6C(param0->unk_40, param0->unk_68, v7); + StringList_AddFromStrbuf(param0->unk_40, param0->unk_68, v7); } - sub_02013A4C(param0->unk_40, v6, 60, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v6, 60, 0xfffffffe); } v3 = Unk_ov23_02256904; - v3.unk_10 = v4 + 1; - v3.unk_12 = v5; - v3.unk_00 = param0->unk_40; - v3.unk_0C = ¶m0->unk_10; - v3.unk_04 = param0->unk_60; - v3.unk_1C = param0; + v3.count = v4 + 1; + v3.maxDisplay = v5; + v3.choices = param0->unk_40; + v3.window = ¶m0->unk_10; + v3.cursorCallback = param0->unk_60; + v3.tmp = param0; - ov23_02251238(param0, v5, v3.unk_10); + ov23_02251238(param0, v5, v3.count); param0->unk_4C = ov23_02248C08(&v3, param0->unk_294, param0->unk_290, 4, param1, Unk_ov23_022577B8->unk_00, 0); param0->unk_2AA = 6; @@ -1082,7 +1080,7 @@ static BOOL ov23_02250378(SysTask *param0, void *param1) v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v2, &v3); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v2, &v3); ov23_022430E0(9, v3, v2); if (CommSys_CheckError()) { @@ -1095,7 +1093,7 @@ static BOOL ov23_02250378(SysTask *param0, void *param1) switch (v1) { case 0xffffffff: - ov23_0225128C(v0, v2, sub_02001504(v0->unk_4C->unk_0C, 2), 6); + ov23_0225128C(v0, v2, ListMenu_GetAttribute(v0->unk_4C->unk_0C, 2), 6); return 0; case 0xfffffffe: ov23_0224FD3C(v0); @@ -1122,10 +1120,10 @@ static BOOL ov23_0225044C(SysTask *param0, void *param1) u32 v1; u16 v2; - v1 = sub_02001288(v0->unk_50); + v1 = ListMenu_ProcessInput(v0->unk_50); v2 = v0->unk_2B0; - sub_020014D0(v0->unk_50, &v0->unk_2B0); + ListMenu_CalcTrueCursorPos(v0->unk_50, &v0->unk_2B0); if (v2 != v0->unk_2B0) { Sound_PlayEffect(1500); @@ -1167,9 +1165,9 @@ static BOOL ov23_0225044C(SysTask *param0, void *param1) return 1; } -void ov23_02250540(BmpList *param0, u32 param1, u8 param2) +void ov23_02250540(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); UnkFuncPtr_ov23_0224FD84 v1 = v0->unk_268; int v2 = param1; int v3 = v1(v2, v0); @@ -1207,17 +1205,17 @@ static void ov23_022505EC(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 { UnkFuncPtr_ov23_0224FE38 v0 = param0->unk_264; UnkFuncPtr_ov23_0224FD84 v1 = param0->unk_268; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; int v3 = v0(param0); int v4 = 6; ov23_0224FB7C(param0); ov23_02253DFC(ov23_022421DC(), 628, 0); - param0->unk_40 = sub_02013A04(v3 + 1, 4); + param0->unk_40 = StringList_New(v3 + 1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v5; @@ -1226,21 +1224,21 @@ static void ov23_022505EC(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 v5 = ov23_02253E3C(ov23_022421DC()); for (v6 = 0; v6 < v3; v6++) { - sub_02013A4C(param0->unk_40, v5, v1(v6, param0), v6); + StringList_AddFromMessageBank(param0->unk_40, v5, v1(v6, param0), v6); } - sub_02013A4C(param0->unk_40, v5, 60, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v5, 60, 0xfffffffe); } v2 = Unk_ov23_02256904; - v2.unk_10 = v3 + 1; - v2.unk_12 = v4; - v2.unk_00 = param0->unk_40; - v2.unk_0C = ¶m0->unk_10; - v2.unk_04 = param0->unk_60; - v2.unk_1C = param0; + v2.count = v3 + 1; + v2.maxDisplay = v4; + v2.choices = param0->unk_40; + v2.window = ¶m0->unk_10; + v2.cursorCallback = param0->unk_60; + v2.tmp = param0; - ov23_02251238(param0, v4, v2.unk_10); + ov23_02251238(param0, v4, v2.count); param0->unk_4C = ov23_02248C08(&v2, param0->unk_294, param0->unk_290, 4, param1, Unk_ov23_022577B8->unk_00, 0); param0->unk_2AA = 7; @@ -1254,7 +1252,7 @@ static BOOL ov23_02250704(SysTask *param0, void *param1) v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v2, &v3); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v2, &v3); ov23_022430E0(11, v3, v2); if (CommSys_CheckError()) { @@ -1267,7 +1265,7 @@ static BOOL ov23_02250704(SysTask *param0, void *param1) switch (v1) { case 0xffffffff: - ov23_0225128C(v0, v2, sub_02001504(v0->unk_4C->unk_0C, 2), 6); + ov23_0225128C(v0, v2, ListMenu_GetAttribute(v0->unk_4C->unk_0C, 2), 6); return 0; case 0xfffffffe: ov23_0224FD3C(v0); @@ -1298,10 +1296,10 @@ static BOOL ov23_022507D8(SysTask *param0, void *param1) u32 v1; u16 v2; - v1 = sub_02001288(v0->unk_50); + v1 = ListMenu_ProcessInput(v0->unk_50); v2 = v0->unk_2B0; - sub_020014D0(v0->unk_50, &v0->unk_2B0); + ListMenu_CalcTrueCursorPos(v0->unk_50, &v0->unk_2B0); if (v2 != v0->unk_2B0) { Sound_PlayEffect(1500); @@ -1379,7 +1377,7 @@ static void ov23_02250998(SysTask *param0, void *param1) UnkStruct_ov23_02250CD4 *v0 = param1; if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_5C = sub_02002100(v0->fieldSystem->unk_08, &Unk_ov23_022568D8, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_5C = Menu_MakeYesNoChoice(v0->fieldSystem->bgConfig, &Unk_ov23_022568D8, 1024 - (18 + 12) - 9, 11, 4); v0->unk_2AA = 12; } } @@ -1387,7 +1385,7 @@ static void ov23_02250998(SysTask *param0, void *param1) static void ov23_022509D4(SysTask *param0, void *param1) { UnkStruct_ov23_02250CD4 *v0 = param1; - int v1 = sub_02002114(v0->unk_5C, 4); + int v1 = Menu_ProcessInputAndHandleExit(v0->unk_5C, 4); if (v1 == 0xffffffff) { return; @@ -1411,14 +1409,14 @@ static void ov23_02250A14(UnkStruct_ov23_02250CD4 *param0) { ov23_0224FB7C(param0); ov23_02253968(); - ov23_02253834(param0->fieldSystem->unk_08, SaveData_GetTrainerInfo(FieldSystem_SaveData(param0->fieldSystem)), ov23_02250A0C, param0, 1); + ov23_02253834(param0->fieldSystem->bgConfig, SaveData_GetTrainerInfo(FieldSystem_SaveData(param0->fieldSystem)), ov23_02250A0C, param0, 1); param0->unk_2AA = 10; } void ov23_02250A50(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem) { UnkStruct_ov23_02250CD4 *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; v0 = Heap_AllocFromHeap(4, sizeof(UnkStruct_ov23_02250CD4)); @@ -1441,14 +1439,14 @@ void ov23_02250A50(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem) static void ov23_02250ACC(UnkStruct_ov23_02250CD4 *param0) { if (ov23_02254238(ov23_022421AC()) == 0) { - param0->unk_5C = sub_02002100(param0->fieldSystem->unk_08, &Unk_ov23_022568D8, 1024 - (18 + 12) - 9, 11, 4); + param0->unk_5C = Menu_MakeYesNoChoice(param0->fieldSystem->bgConfig, &Unk_ov23_022568D8, 1024 - (18 + 12) - 9, 11, 4); param0->unk_2AA = 1; } } static void ov23_02250B08(UnkStruct_ov23_02250CD4 *param0) { - int v0 = sub_02002114(param0->unk_5C, 4); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_5C, 4); if (v0 == 0xffffffff) { return; @@ -1464,7 +1462,7 @@ static void ov23_02250B08(UnkStruct_ov23_02250CD4 *param0) static void ov23_02250B34(SysTask *param0, UnkStruct_ov23_02250CD4 *param1, BOOL param2) { if (param1->unk_5C) { - sub_02002154(param1->unk_5C, 4); + Menu_DestroyForExit(param1->unk_5C, 4); } Strbuf_Free(param1->unk_68); @@ -1533,9 +1531,9 @@ static void ov23_02250B9C(SysTask *param0, void *param1) } } -void ov23_02250C3C(BmpList *param0, u32 param1, u8 param2) +void ov23_02250C3C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); UnkFuncPtr_ov23_0224FD84 v1 = v0->unk_268; int v2 = param1; int v3 = v1(v2, v0); @@ -1549,16 +1547,16 @@ void ov23_02250C3C(BmpList *param0, u32 param1, u8 param2) ov23_02253F60(ov23_022421DC(), v2, 0, NULL); } -static void ov23_02250C74(BmpList *param0, u32 param1, u8 param2) +static void ov23_02250C74(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); int v1 = param1; UndergroundData *v2 = sub_020298B0(FieldSystem_SaveData(v0->fieldSystem)); if (!sub_02028AFC(v2, v1)) { - sub_0200147C(param0, 1, 15, 2); + ListMenu_SetAltTextColors(param0, 1, 15, 2); } else { - sub_0200147C(param0, 2, 15, 2); + ListMenu_SetAltTextColors(param0, 2, 15, 2); } } @@ -1608,17 +1606,17 @@ static void ov23_02250D90(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 { UnkFuncPtr_ov23_0224FE38 v0 = param0->unk_264; UnkFuncPtr_ov23_0224FD84 v1 = param0->unk_268; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; int v3 = v0(param0); int v4 = 6; ov23_0224FB7C(param0); ov23_02253DFC(ov23_022421DC(), 626, 0); - param0->unk_40 = sub_02013A04(v3 + 1, 4); + param0->unk_40 = StringList_New(v3 + 1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 19, 3, 12, (6 * 2), 13, ((1024 - (18 + 12) - 9 - 11 * 22) - 12 * (6 * 2))); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v5; @@ -1627,22 +1625,22 @@ static void ov23_02250D90(UnkStruct_ov23_02250CD4 *param0, UnkFuncPtr_ov23_02248 v5 = ov23_02253E3C(ov23_022421DC()); for (v6 = 0; v6 < v3; v6++) { - sub_02013A4C(param0->unk_40, v5, v1(v6, param0), v6); + StringList_AddFromMessageBank(param0->unk_40, v5, v1(v6, param0), v6); } - sub_02013A4C(param0->unk_40, v5, 0, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v5, 0, 0xfffffffe); } v2 = Unk_ov23_02256904; - v2.unk_10 = v3 + 1; - v2.unk_12 = v4; - v2.unk_08 = param0->unk_64; - v2.unk_00 = param0->unk_40; - v2.unk_0C = ¶m0->unk_10; - v2.unk_04 = param0->unk_60; - v2.unk_1C = param0; + v2.count = v3 + 1; + v2.maxDisplay = v4; + v2.printCallback = param0->unk_64; + v2.choices = param0->unk_40; + v2.window = ¶m0->unk_10; + v2.cursorCallback = param0->unk_60; + v2.tmp = param0; - ov23_02251238(param0, v4, v2.unk_10); + ov23_02251238(param0, v4, v2.count); param0->unk_4C = ov23_02248C08(&v2, param0->unk_294, param0->unk_290, 4, param1, Unk_ov23_022577B8->unk_00, 0); param0->unk_2AA = 8; @@ -1656,7 +1654,7 @@ static BOOL ov23_02250EAC(SysTask *param0, void *param1) v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v2, &v3); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v2, &v3); ov23_022430E0(10, v3, v2); if (CommSys_CheckError()) { @@ -1669,7 +1667,7 @@ static BOOL ov23_02250EAC(SysTask *param0, void *param1) switch (v1) { case 0xffffffff: - ov23_0225128C(v0, v2, sub_02001504(v0->unk_4C->unk_0C, 2), 6); + ov23_0225128C(v0, v2, ListMenu_GetAttribute(v0->unk_4C->unk_0C, 2), 6); return 0; case 0xfffffffe: Sound_PlayEffect(1500); @@ -1701,10 +1699,10 @@ static BOOL ov23_02250F8C(SysTask *param0, void *param1) u32 v1; u16 v2; - v1 = sub_02001288(v0->unk_50); + v1 = ListMenu_ProcessInput(v0->unk_50); v2 = v0->unk_2B0; - sub_020014D0(v0->unk_50, &v0->unk_2B0); + ListMenu_CalcTrueCursorPos(v0->unk_50, &v0->unk_2B0); if (v2 != v0->unk_2B0) { Sound_PlayEffect(1500); @@ -1755,7 +1753,7 @@ void ov23_02251044(void *param0, u32 param1) } if (v0->unk_5C) { - sub_02002154(v0->unk_5C, 4); + Menu_DestroyForExit(v0->unk_5C, 4); } ov23_0224FCF4(v0); @@ -1842,7 +1840,7 @@ static BOOL ov23_022510F0(SysTask *param0, void *param1) void *ov23_022511B0(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem) { UnkStruct_ov23_02250CD4 *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; v0 = Heap_AllocFromHeap(4, sizeof(UnkStruct_ov23_02250CD4)); diff --git a/src/overlay023/ov23_0225128C.c b/src/overlay023/ov23_0225128C.c index f61215ef58..c8940b340c 100644 --- a/src/overlay023/ov23_0225128C.c +++ b/src/overlay023/ov23_0225128C.c @@ -3,8 +3,6 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_defs/struct_02049FA8.h" @@ -25,7 +23,6 @@ #include "overlay023/ov23_02254A14.h" #include "overlay023/struct_ov23_0224271C.h" #include "overlay023/struct_ov23_02250CD4.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "camera.h" @@ -35,20 +32,20 @@ #include "core_sys.h" #include "field_system.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "player_avatar.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_0202854C.h" #include "unk_02033200.h" #include "unk_020508D4.h" @@ -71,7 +68,7 @@ typedef struct { typedef struct { int unk_00; FieldSystem *fieldSystem; - UIControlData *unk_08; + Menu *unk_08; UnkStruct_ov23_022513B0 unk_0C; SysTask *unk_10; } UnkStruct_ov23_02252038; @@ -263,9 +260,9 @@ static int ov23_0225144C(int param0, UnkStruct_ov23_02250CD4 *param1) return 0; } -static void ov23_0225148C(BmpList *param0, u32 param1, u8 param2) +static void ov23_0225148C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); int v1 = param1; if (param1 == 0xfffffffe) { @@ -275,9 +272,9 @@ static void ov23_0225148C(BmpList *param0, u32 param1, u8 param2) ov23_02253F60(ov23_022421BC(), 6 + v1, 0, NULL); } -static void ov23_022514B0(BmpList *param0, u32 param1, u8 param2) +static void ov23_022514B0(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); int v1 = param1; if (param1 == 0xfffffffe) { @@ -293,8 +290,8 @@ static BOOL ov23_022514D8(SysTask *param0, void *param1) u32 v1; u16 v2, v3; - v1 = sub_02001288(v0->unk_48); - sub_020014DC(v0->unk_48, &v2, &v3); + v1 = ListMenu_ProcessInput(v0->unk_48); + ListMenu_GetListAndCursorPos(v0->unk_48, &v2, &v3); ov23_022430E0(23, v3, v2); ov23_022521C8(v0); @@ -345,7 +342,7 @@ static BOOL ov23_022514D8(SysTask *param0, void *param1) static void ov23_022515D8(UnkStruct_ov23_02250CD4 *param0, int param1, int param2, UnkFuncPtr_ov23_022515D8 param3, int param4) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1 = param2 + 1; BOOL v2 = 1; @@ -356,10 +353,10 @@ static void ov23_022515D8(UnkStruct_ov23_02250CD4 *param0, int param1, int param ov23_0224FB7C(param0); - param0->unk_40 = sub_02013A04(v1, 4); + param0->unk_40 = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 17, 3, 14, v1 * 2, 13, 2); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 17, 3, 14, v1 * 2, 13, 2); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v3; @@ -369,43 +366,43 @@ static void ov23_022515D8(UnkStruct_ov23_02250CD4 *param0, int param1, int param for (v4 = 0; v4 < v1; v4++) { if (v4 == (v1 - 1)) { - sub_02013A4C(param0->unk_40, v3, param1 + 5, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v3, param1 + 5, 0xfffffffe); } else { - sub_02013A4C(param0->unk_40, v3, param1 + v4, v4); + StringList_AddFromMessageBank(param0->unk_40, v3, param1 + v4, v4); } } MessageLoader_Free(v3); } - MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(ListMenuTemplate)); - v0.unk_10 = v1; - v0.unk_12 = v1; - v0.unk_00 = param0->unk_40; - v0.unk_0C = ¶m0->unk_10; + v0.count = v1; + v0.maxDisplay = v1; + v0.choices = param0->unk_40; + v0.window = ¶m0->unk_10; if (param3) { - v0.unk_04 = param3; + v0.cursorCallback = param3; } - v0.unk_1C = param0; - ov23_02251238(param0, v1, v0.unk_10); - param0->unk_48 = sub_0200112C(&v0, param0->unk_294, param0->unk_290, 4); + v0.tmp = param0; + ov23_02251238(param0, v1, v0.count); + param0->unk_48 = ListMenu_New(&v0, param0->unk_294, param0->unk_290, 4); } static void ov23_022516E8(UnkStruct_ov23_02250CD4 *param0, int param1, int param2, UnkFuncPtr_ov23_022515D8 param3, int param4) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1 = param2 + 1; BOOL v2 = 1; ov23_0224FB7C(param0); - param0->unk_40 = sub_02013A04(v1, 4); + param0->unk_40 = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 17, 3, 14, v1 * 2, 13, (2 + 14 * 16)); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 17, 3, 14, v1 * 2, 13, (2 + 14 * 16)); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v3; @@ -415,29 +412,29 @@ static void ov23_022516E8(UnkStruct_ov23_02250CD4 *param0, int param1, int param for (v4 = 0; v4 < v1; v4++) { if (v4 == param2) { - sub_02013A4C(param0->unk_40, v3, param1 + v4, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v3, param1 + v4, 0xfffffffe); } else { - sub_02013A4C(param0->unk_40, v3, param1 + v4, v4); + StringList_AddFromMessageBank(param0->unk_40, v3, param1 + v4, v4); } } MessageLoader_Free(v3); } - MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(ListMenuTemplate)); - v0.unk_10 = param2 + 1; - v0.unk_12 = v1; - v0.unk_00 = param0->unk_40; - v0.unk_0C = ¶m0->unk_10; + v0.count = param2 + 1; + v0.maxDisplay = v1; + v0.choices = param0->unk_40; + v0.window = ¶m0->unk_10; if (param3) { - v0.unk_04 = param3; + v0.cursorCallback = param3; } - v0.unk_1C = param0; - ov23_02251238(param0, v1, v0.unk_10); - param0->unk_48 = sub_0200112C(&v0, param0->unk_294, param0->unk_290, 4); + v0.tmp = param0; + ov23_02251238(param0, v1, v0.count); + param0->unk_48 = ListMenu_New(&v0, param0->unk_294, param0->unk_290, 4); } static BOOL ov23_022517E0(SysTask *param0, void *param1) @@ -446,8 +443,8 @@ static BOOL ov23_022517E0(SysTask *param0, void *param1) u32 v1; u16 v2, v3; - v1 = sub_02001288(v0->unk_48); - sub_020014DC(v0->unk_48, &v2, &v3); + v1 = ListMenu_ProcessInput(v0->unk_48); + ListMenu_GetListAndCursorPos(v0->unk_48, &v2, &v3); ov23_022430E0(22, v3, v2); ov23_022521C8(v0); @@ -496,7 +493,7 @@ static BOOL ov23_02251894(SysTask *param0, void *param1) v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v3, &v4); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v3, &v4); ov23_022430E0(2, v4, v3); if (v1 == 0xfffffffe) { @@ -505,7 +502,7 @@ static BOOL ov23_02251894(SysTask *param0, void *param1) switch (v1) { case 0xffffffff: - ov23_0225128C(v0, v3, sub_02001504(v0->unk_4C->unk_0C, 2), 6); + ov23_0225128C(v0, v3, ListMenu_GetAttribute(v0->unk_4C->unk_0C, 2), 6); return 0; case 0xfffffffe: ov23_02254044(ov23_022421DC()); @@ -539,7 +536,7 @@ static BOOL ov23_02251960(SysTask *param0, void *param1) v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v3, &v4); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v3, &v4); ov23_022430E0(6, v4, v3); if (v1 == 0xfffffffe) { @@ -548,7 +545,7 @@ static BOOL ov23_02251960(SysTask *param0, void *param1) switch (v1) { case 0xffffffff: - ov23_0225128C(v0, v3, sub_02001504(v0->unk_4C->unk_0C, 2), 6); + ov23_0225128C(v0, v3, ListMenu_GetAttribute(v0->unk_4C->unk_0C, 2), 6); return 0; case 0xfffffffe: ov23_02254044(ov23_022421DC()); @@ -619,11 +616,11 @@ static BOOL ov23_02251ACC(TaskManager *param0) switch (v1->unk_00) { case 0: Sound_PlayEffect(1549); - sub_0200F174(2, 0, 0, 0x0, 6, 1, 4); + StartScreenTransition(2, 0, 0, 0x0, 6, 1, 4); v1->unk_00 = 1; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { PlayerAvatar_SetHidden(fieldSystem->playerAvatar, 0); ov23_02251A84(1, fieldSystem); @@ -640,11 +637,11 @@ static BOOL ov23_02251ACC(TaskManager *param0) case 4: PlayerAvatar_SetHidden(fieldSystem->playerAvatar, 1); ov23_02251A84(0, fieldSystem); - sub_0200F174(1, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(1, 1, 1, 0x0, 6, 1, 4); v1->unk_00 = 5; break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov23_0224B2C8(fieldSystem); sub_0206AA30(SaveData_GetVarsFlags(fieldSystem->saveData)); ov23_02251F94(fieldSystem); @@ -705,7 +702,7 @@ static void ov23_02251C04(SysTask *param0, void *param1) case 6: ov23_0224FB7C(param1); ov23_02254044(ov23_022421BC()); - v0->unk_270 = ov23_02253C64(v0->fieldSystem->unk_08, SaveData_GetTrainerInfo(FieldSystem_SaveData(v0->fieldSystem)), sub_020298B0(FieldSystem_SaveData(v0->fieldSystem)), NULL, NULL); + v0->unk_270 = ov23_02253C64(v0->fieldSystem->bgConfig, SaveData_GetTrainerInfo(FieldSystem_SaveData(v0->fieldSystem)), sub_020298B0(FieldSystem_SaveData(v0->fieldSystem)), NULL, NULL); v0->unk_2AA = 7; break; case 7: @@ -786,7 +783,7 @@ static void ov23_02251C04(SysTask *param0, void *param1) } break; case 3: - if (v0->fieldSystem->unk_10 == NULL) { + if (v0->fieldSystem->taskManager == NULL) { v2 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_ov23_02251ACC)); MI_CpuClear8(v2, sizeof(UnkStruct_ov23_02251ACC)); v2->unk_00 = 0; @@ -836,7 +833,7 @@ static void ov23_02251C04(SysTask *param0, void *param1) static void ov23_02251F94(FieldSystem *fieldSystem) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; UnkStruct_ov23_02250CD4 *v1; const int v2 = 6; @@ -871,12 +868,12 @@ static void ov23_02252038(SysTask *param0, void *param1) switch (v0->unk_00) { case 0: if (ov23_02254238(ov23_0224219C()) == 0) { - v0->unk_08 = sub_02002100(v0->fieldSystem->unk_08, &Unk_ov23_022569C8, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_08 = Menu_MakeYesNoChoice(v0->fieldSystem->bgConfig, &Unk_ov23_022569C8, 1024 - (18 + 12) - 9, 11, 4); v0->unk_00 = 1; } break; case 1: - v1 = sub_02002114(v0->unk_08, 4); + v1 = Menu_ProcessInputAndHandleExit(v0->unk_08, 4); if (v1 == 0xffffffff) { return; @@ -903,7 +900,7 @@ static void ov23_022520C8(SysTask *param0, void *param1) UnkStruct_ov23_02252038 *v0 = param1; if (v0->unk_08) { - sub_02002154(v0->unk_08, 4); + Menu_DestroyForExit(v0->unk_08, 4); } Heap_FreeToHeap(v0); @@ -959,7 +956,7 @@ static void ov23_022521C8(UnkStruct_ov23_02250CD4 *param0) u16 v0; v0 = param0->unk_2AE; - sub_020014D0(param0->unk_48, ¶m0->unk_2AE); + ListMenu_CalcTrueCursorPos(param0->unk_48, ¶m0->unk_2AE); if (v0 != param0->unk_2AE) { Sound_PlayEffect(1500); diff --git a/src/overlay023/ov23_022521F0.c b/src/overlay023/ov23_022521F0.c index 8637e16754..44bcfae77e 100644 --- a/src/overlay023/ov23_022521F0.c +++ b/src/overlay023/ov23_022521F0.c @@ -3,7 +3,6 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" #include "struct_decls/struct_020298B0_decl.h" #include "struct_decls/struct_02061AB4_decl.h" @@ -15,7 +14,6 @@ #include "overlay023/ov23_0225426C.h" #include "overlay023/ov23_0225429C.h" #include "overlay023/struct_ov23_02250CD4.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "comm_player_manager.h" @@ -24,20 +22,20 @@ #include "core_sys.h" #include "field_system.h" #include "heap.h" +#include "list_menu.h" #include "map_header_data.h" #include "map_object.h" +#include "menu.h" #include "message.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0202631C.h" #include "unk_0202854C.h" #include "unk_020573FC.h" @@ -135,7 +133,7 @@ static void ov23_022522F0(UnkStruct_ov23_02250CD4 *param0, int param1) int v1, v2, v3, v4, v5; SaveData *v6 = FieldSystem_SaveData(param0->fieldSystem); UndergroundData *v7 = sub_020298B0(v6); - BOOL v8 = Pokedex_IsNationalUnlocked(SaveData_Pokedex(v6)); + BOOL v8 = Pokedex_IsNationalDexObtained(SaveData_Pokedex(v6)); MATH_InitRand16(&v0, sub_02028930(v7) + param1); @@ -207,7 +205,7 @@ static int ov23_02252404(UnkStruct_ov23_02250CD4 *param0, int param1, int param2 static void *ov23_022524B8(UnkStruct_ov23_02250CD4 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1 = 3; if (param0->unk_2AC == 2) { @@ -216,10 +214,10 @@ static void *ov23_022524B8(UnkStruct_ov23_02250CD4 *param0) ov23_0224FB7C(param0); - param0->unk_40 = sub_02013A04(v1, 4); + param0->unk_40 = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 19, 3, 12, v1 * 2, 13, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - 12 * 6)); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 19, 3, 12, v1 * 2, 13, ((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - 12 * 6)); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { int v2, v3; @@ -227,35 +225,35 @@ static void *ov23_022524B8(UnkStruct_ov23_02250CD4 *param0) if (param0->unk_2AC == 1) { v3 = 13; ov23_022521F0(param0, param0->unk_288); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3, 0); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 1, 1); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 2, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3, 0); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 1, 1); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 2, 0xfffffffe); } else if (param0->unk_2AC == 0) { v3 = 16; ov23_022522F0(param0, param0->unk_288); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3, 0); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 1, 1); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 2, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3, 0); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 1, 1); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), v3 + 2, 0xfffffffe); } else { v3 = 28; - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), 28, 0); - sub_02013A4C(param0->unk_40, ov23_02253E3C(ov23_022421BC()), 22, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), 28, 0); + StringList_AddFromMessageBank(param0->unk_40, ov23_02253E3C(ov23_022421BC()), 22, 0xfffffffe); } } - MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(ListMenuTemplate)); - v0.unk_00 = param0->unk_40; - v0.unk_0C = ¶m0->unk_10; - v0.unk_10 = v1; - v0.unk_12 = v1; + v0.choices = param0->unk_40; + v0.window = ¶m0->unk_10; + v0.count = v1; + v0.maxDisplay = v1; param0->unk_294 = ov23_02243154(19); param0->unk_290 = ov23_0224318C(19); - ov23_02251238(param0, v0.unk_12, v0.unk_10); + ov23_02251238(param0, v0.maxDisplay, v0.count); - param0->unk_48 = sub_0200112C(&v0, param0->unk_294, param0->unk_290, 4); + param0->unk_48 = ListMenu_New(&v0, param0->unk_294, param0->unk_290, 4); param0->unk_2AE = param0->unk_290; Window_CopyToVRAM(¶m0->unk_10); @@ -263,9 +261,9 @@ static void *ov23_022524B8(UnkStruct_ov23_02250CD4 *param0) return param0; } -static void ov23_0225265C(BmpList *param0, u32 param1, u8 param2) +static void ov23_0225265C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v0 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); u32 v1 = param1; Window_FillTilemap(&v0->unk_20, 15); @@ -297,10 +295,10 @@ static void ov23_0225265C(BmpList *param0, u32 param1, u8 param2) } } -static void ov23_02252754(BmpList *param0, u32 param1, u8 param2) +static void ov23_02252754(ListMenu *param0, u32 param1, u8 param2) { MATHRandContext16 v0; - UnkStruct_ov23_02250CD4 *v1 = (UnkStruct_ov23_02250CD4 *)sub_02001504(param0, 19); + UnkStruct_ov23_02250CD4 *v1 = (UnkStruct_ov23_02250CD4 *)ListMenu_GetAttribute(param0, 19); UndergroundData *v2 = sub_020298B0(FieldSystem_SaveData(v1->fieldSystem)); int v3 = param1, v4, v5; int v6, v7 = 0, v8; @@ -394,14 +392,14 @@ static int ov23_02252A04(int param0, void *param1) static void ov23_02252A18(UnkStruct_ov23_02250CD4 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; const int v1 = 5 + 1; ov23_0224FB7C(param0); - param0->unk_40 = sub_02013A04(v1, 4); + param0->unk_40 = StringList_New(v1, 4); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_10, 3, 19, 3, 12, v1 * 2, 13, (((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - 12 * 6) - 12 * 12)); - Window_Show(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_10, 3, 19, 3, 12, v1 * 2, 13, (((((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - 12 * 6) - 12 * 12)); + Window_DrawStandardFrame(¶m0->unk_10, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v2; @@ -419,36 +417,36 @@ static void ov23_02252A18(UnkStruct_ov23_02250CD4 *param0) } for (v3 = 0; v3 < v1 - 1; v3++) { - sub_02013A4C(param0->unk_40, v2, param0->unk_274[v3], v3); + StringList_AddFromMessageBank(param0->unk_40, v2, param0->unk_274[v3], v3); } - sub_02013A4C(param0->unk_40, v2, 0, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_40, v2, 0, 0xfffffffe); MessageLoader_Free(v2); } - MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8(ov23_02253D40(), &v0, sizeof(ListMenuTemplate)); - v0.unk_00 = param0->unk_40; - v0.unk_0C = ¶m0->unk_10; - v0.unk_10 = v1; - v0.unk_12 = v1; - v0.unk_04 = ov23_0225265C; - v0.unk_1C = param0; + v0.choices = param0->unk_40; + v0.window = ¶m0->unk_10; + v0.count = v1; + v0.maxDisplay = v1; + v0.cursorCallback = ov23_0225265C; + v0.tmp = param0; param0->unk_268 = ov23_02252A04; param0->unk_294 = ov23_02243154(13 + param0->unk_2AC); param0->unk_290 = ov23_0224318C(13 + param0->unk_2AC); param0->unk_2AE = param0->unk_290; - ov23_02251238(param0, v0.unk_12, v0.unk_10); - param0->unk_48 = sub_0200112C(&v0, param0->unk_294, param0->unk_290, 4); + ov23_02251238(param0, v0.maxDisplay, v0.count); + param0->unk_48 = ListMenu_New(&v0, param0->unk_294, param0->unk_290, 4); Window_CopyToVRAM(¶m0->unk_10); } static void ov23_02252B90(UnkStruct_ov23_02250CD4 *param0, BOOL param1) { if (Window_IsInUse(¶m0->unk_20)) { - Window_Clear(¶m0->unk_20, 1); + Window_EraseStandardFrame(¶m0->unk_20, 1); Window_Remove(¶m0->unk_20); } @@ -548,8 +546,8 @@ void ov23_02252D08(int param0, int param1) static void ov23_02252D1C(UnkStruct_ov23_02250CD4 *param0) { if (!Window_IsInUse(¶m0->unk_20)) { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_20, 3, 1, 12, 12, 4, 13, 1); - Window_Show(¶m0->unk_20, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_20, 3, 1, 12, 12, 4, 13, 1); + Window_DrawStandardFrame(¶m0->unk_20, 1, 1024 - (18 + 12) - 9, 11); } Window_FillTilemap(¶m0->unk_20, 15); @@ -558,8 +556,8 @@ static void ov23_02252D1C(UnkStruct_ov23_02250CD4 *param0) void ov23_02252D74(UnkStruct_ov23_02250CD4 *param0, int param1) { - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_30, 3, 1, 1, 7, 4, 13, 51); - Window_Show(¶m0->unk_30, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_30, 3, 1, 1, 7, 4, 13, 51); + Window_DrawStandardFrame(¶m0->unk_30, 1, 1024 - (18 + 12) - 9, 11); Window_FillTilemap(¶m0->unk_30, 15); Window_CopyToVRAM(¶m0->unk_30); @@ -572,7 +570,7 @@ void ov23_02252D74(UnkStruct_ov23_02250CD4 *param0, int param1) void ov23_02252DF4(UnkStruct_ov23_02250CD4 *param0) { if (Window_IsInUse(¶m0->unk_30)) { - Window_Clear(¶m0->unk_30, 1); + Window_EraseStandardFrame(¶m0->unk_30, 1); Window_Remove(¶m0->unk_30); } } @@ -580,7 +578,7 @@ void ov23_02252DF4(UnkStruct_ov23_02250CD4 *param0) void ov23_02252E18(UnkStruct_ov23_02250CD4 *param0) { if (Window_IsInUse(¶m0->unk_30)) { - Window_Clear(¶m0->unk_30, 0); + Window_EraseStandardFrame(¶m0->unk_30, 0); Window_Remove(¶m0->unk_30); } } @@ -627,12 +625,12 @@ static void ov23_02252E70(SysTask *param0, void *param1) v0->unk_2AA = 3; break; case 3: - v1 = sub_02001288(v0->unk_48); - sub_020014DC(v0->unk_48, &v3, &v4); + v1 = ListMenu_ProcessInput(v0->unk_48); + ListMenu_GetListAndCursorPos(v0->unk_48, &v3, &v4); ov23_022430E0(19, v4, v3); v5 = v0->unk_2AE; - sub_020014D0(v0->unk_48, &v0->unk_2AE); + ListMenu_CalcTrueCursorPos(v0->unk_48, &v0->unk_2AE); if (v5 != v0->unk_2AE) { Sound_PlayEffect(1500); @@ -670,12 +668,12 @@ static void ov23_02252E70(SysTask *param0, void *param1) v0->unk_2AA = 5; break; case 5: - v1 = sub_02001288(v0->unk_48); - sub_020014DC(v0->unk_48, &v3, &v4); + v1 = ListMenu_ProcessInput(v0->unk_48); + ListMenu_GetListAndCursorPos(v0->unk_48, &v3, &v4); ov23_022430E0(13 + v0->unk_2AC, v4, v3); v5 = v0->unk_2AE; - sub_020014D0(v0->unk_48, &v0->unk_2AE); + ListMenu_CalcTrueCursorPos(v0->unk_48, &v0->unk_2AE); if (v5 != v0->unk_2AE) { Sound_PlayEffect(1500); @@ -739,7 +737,7 @@ static void ov23_02252E70(SysTask *param0, void *param1) case 8: if (ov23_02254238(ov23_022421BC()) == 0) { v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v3, &v4); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v3, &v4); ov23_022430E0(12, v4, v3); if (v1 != 0xffffffff) { @@ -826,7 +824,7 @@ static void ov23_02252E70(SysTask *param0, void *param1) break; case 13: v1 = ov23_02248D20(v0->unk_4C); - sub_020014DC(v0->unk_4C->unk_0C, &v3, &v4); + ListMenu_GetListAndCursorPos(v0->unk_4C->unk_0C, &v3, &v4); ov23_022430E0(16 + v0->unk_2AC, v4, v3); switch (v1) { @@ -852,12 +850,12 @@ static void ov23_02252E70(SysTask *param0, void *param1) break; case 14: if (ov23_02254238(ov23_022421BC()) == 0) { - v0->unk_5C = sub_02002100(v0->fieldSystem->unk_08, &Unk_ov23_022569D8, 1024 - (18 + 12) - 9, 11, 4); + v0->unk_5C = Menu_MakeYesNoChoice(v0->fieldSystem->bgConfig, &Unk_ov23_022569D8, 1024 - (18 + 12) - 9, 11, 4); v0->unk_2AA = 15; } break; case 15: - v1 = sub_02002114(v0->unk_5C, 4); + v1 = Menu_ProcessInputAndHandleExit(v0->unk_5C, 4); if (v1 == 0xffffffff) { return; @@ -912,7 +910,7 @@ static void ov23_02252E70(SysTask *param0, void *param1) void ov23_022534A0(FieldSystem *fieldSystem) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1 = sub_02058D88(CommSys_CurNetId()); int v2 = sub_02058DC0(CommSys_CurNetId()); int v3 = CommPlayer_GetOppositeDir(CommPlayer_Dir(CommSys_CurNetId())); diff --git a/src/overlay023/ov23_02253598.c b/src/overlay023/ov23_02253598.c index 9dd3dbf92a..58e50103d2 100644 --- a/src/overlay023/ov23_02253598.c +++ b/src/overlay023/ov23_02253598.c @@ -5,18 +5,14 @@ #include "constants/heap.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202855C_decl.h" #include "struct_decls/struct_020298B0_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "overlay023/funcptr_ov23_0224DCB8.h" #include "overlay023/funcptr_ov23_02253834.h" #include "overlay023/ov23_02241F74.h" #include "overlay023/ov23_02253D40.h" #include "overlay023/struct_ov23_02253598_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "comm_player_manager.h" @@ -24,16 +20,18 @@ #include "core_sys.h" #include "game_records.h" #include "heap.h" +#include "list_menu.h" #include "message.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0202854C.h" typedef int (*UnkFuncPtr_ov23_022576EC)(const SecretBaseRecord *); @@ -42,8 +40,8 @@ typedef struct { UnkFuncPtr_ov23_02253834 unk_00; void *unk_04; Window unk_08; - ResourceMetadata *unk_18; - BmpList *unk_1C; + StringList *unk_18; + ListMenu *unk_1C; UnkFuncPtr_ov23_0224DCB8 unk_20; u16 unk_24; int unk_28; @@ -182,7 +180,7 @@ static void ov23_022537D4(SysTask *param0, void *param1) { UnkStruct_ov23_022537D4 *v0 = param1; - Window_Clear(&v0->unk_08, 0); + Window_EraseStandardFrame(&v0->unk_08, 0); Window_ClearAndCopyToVRAM(&v0->unk_08); Window_Remove(&v0->unk_08); @@ -214,7 +212,7 @@ void ov23_02253834(BgConfig *param0, TrainerInfo *param1, UnkFuncPtr_ov23_022538 { SecretBaseRecord *v0; MessageLoader *v1; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; int v3 = 10; UnkStruct_ov23_022537D4 *v4 = Heap_AllocFromHeap(4, sizeof(UnkStruct_ov23_022537D4)); @@ -224,7 +222,7 @@ void ov23_02253834(BgConfig *param0, TrainerInfo *param1, UnkFuncPtr_ov23_022538 v4->unk_04 = param3; Window_Add(param0, &v4->unk_08, 3, 4, 2, 24, 19, 13, 1); - Window_Show(&v4->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(&v4->unk_08, 1, 1024 - (18 + 12) - 9, 11); v1 = MessageLoader_Init(0, 26, 640, 4); Window_FillTilemap(&v4->unk_08, 15); @@ -397,7 +395,7 @@ void *ov23_02253C64(BgConfig *param0, TrainerInfo *param1, UndergroundData *para { SecretBaseRecord *v0; MessageLoader *v1; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; int v3 = 10; UnkStruct_ov23_022537D4 *v4 = Heap_AllocFromHeap(4, sizeof(UnkStruct_ov23_022537D4)); @@ -407,7 +405,7 @@ void *ov23_02253C64(BgConfig *param0, TrainerInfo *param1, UndergroundData *para v4->unk_04 = param4; Window_Add(param0, &v4->unk_08, 3, 4, 2, 24, 19, 13, 1); - Window_Show(&v4->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(&v4->unk_08, 1, 1024 - (18 + 12) - 9, 11); v1 = MessageLoader_Init(0, 26, 639, 4); Window_FillTilemap(&v4->unk_08, 15); @@ -426,7 +424,7 @@ void ov23_02253D10(void *param0) { UnkStruct_ov23_022537D4 *v0 = param0; - Window_Clear(&v0->unk_08, 0); + Window_EraseStandardFrame(&v0->unk_08, 0); Window_ClearAndCopyToVRAM(&v0->unk_08); Window_Remove(&v0->unk_08); diff --git a/src/overlay023/ov23_02253D40.c b/src/overlay023/ov23_02253D40.c index 94ad21f0d9..12931ebebe 100644 --- a/src/overlay023/ov23_02253D40.c +++ b/src/overlay023/ov23_02253D40.c @@ -5,19 +5,19 @@ #include "overlay023/struct_ov23_02253E2C_decl.h" #include "overlay023/struct_ov23_02253F60.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "core_sys.h" #include "heap.h" +#include "list_menu.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200DA60.h" typedef struct UnkStruct_ov23_02253E2C_t { Strbuf *unk_00; @@ -43,7 +43,7 @@ typedef struct UnkStruct_ov23_02253E2C_t { void ov23_022421EC(void); static void ov23_02253FA4(UnkStruct_ov23_02253E2C *param0, BOOL param1); -static const UnkStruct_ov84_02240FA8 Unk_ov23_022569E0 = { +static const ListMenuTemplate Unk_ov23_022569E0 = { NULL, NULL, NULL, @@ -65,7 +65,7 @@ static const UnkStruct_ov84_02240FA8 Unk_ov23_022569E0 = { NULL }; -const UnkStruct_ov84_02240FA8 *ov23_02253D40(void) +const ListMenuTemplate *ov23_02253D40(void) { return &Unk_ov23_022569E0; } @@ -173,7 +173,7 @@ static int ov23_02253E90(UnkStruct_ov23_02253E2C *param0, BOOL param1, UnkStruct } Window_FillTilemap(¶m0->unk_08, 15); - sub_0200E060(¶m0->unk_08, 1, param0->unk_42, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_08, 1, param0->unk_42, 10); if (param1) { param0->unk_20 = SysTask_Start(ov23_02253E40, param0, 100); @@ -233,15 +233,15 @@ static void ov23_02253FA4(UnkStruct_ov23_02253E2C *param0, int param1) switch (param1) { case 0: - sub_0200E084(¶m0->unk_08, 1); + Window_EraseMessageBox(¶m0->unk_08, 1); break; case 1: - sub_0200E084(¶m0->unk_08, 1); + Window_EraseMessageBox(¶m0->unk_08, 1); Window_ClearAndCopyToVRAM(¶m0->unk_08); Window_Remove(¶m0->unk_08); break; case 2: - sub_0200E084(¶m0->unk_08, 1); + Window_EraseMessageBox(¶m0->unk_08, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_08); Window_Remove(¶m0->unk_08); break; diff --git a/src/overlay023/ov23_022542CC.c b/src/overlay023/ov23_022542CC.c index ccd1662da5..705b37bc11 100644 --- a/src/overlay023/ov23_022542CC.c +++ b/src/overlay023/ov23_022542CC.c @@ -3,10 +3,7 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020298B0_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0206A844.h" #include "field/field_system.h" @@ -16,18 +13,17 @@ #include "overlay023/struct_ov23_02248D20.h" #include "overlay023/struct_ov23_022542D8_decl.h" #include "overlay023/struct_ov23_02254594_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "heap.h" +#include "list_menu.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0202854C.h" #include "unk_0206A780.h" @@ -35,8 +31,8 @@ typedef struct UnkStruct_ov23_022542D8_t { FieldSystem *fieldSystem; Window unk_04; Window unk_14; - ResourceMetadata *unk_24; - BmpList *unk_28; + StringList *unk_24; + ListMenu *unk_28; Strbuf *unk_2C; u16 *unk_30; u16 *unk_34; @@ -50,9 +46,9 @@ typedef struct UnkStruct_ov23_02254594_t { UnkStruct_0206A844 *unk_04; Window unk_08; Window unk_18; - ResourceMetadata *unk_28; + StringList *unk_28; UnkStruct_ov23_02248D20 *unk_2C; - BmpList *unk_30; + ListMenu *unk_30; Strbuf *unk_34; u16 *unk_38; u16 *unk_3C; @@ -72,7 +68,7 @@ static void ov23_02254958(UnkStruct_ov23_02254594 *param0); static void ov23_022549A8(UnkStruct_0206A844 *param0, const u16 param1, const u16 param2, const u16 param3); static void ov23_022549EC(UnkStruct_ov23_022542D8 *param0); -static const UnkStruct_ov84_02240FA8 Unk_ov23_02256B3C = { +static const ListMenuTemplate Unk_ov23_02256B3C = { NULL, NULL, NULL, @@ -111,7 +107,7 @@ void ov23_022542D8(UnkStruct_ov23_022542D8 *param0, FieldSystem *fieldSystem, u1 param0->unk_34 = param3; param0->unk_40 = 0; - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 2, 4); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 2, 4); } void ov23_0225430C(UnkStruct_ov23_022542D8 *param0) @@ -142,7 +138,7 @@ BOOL ov23_02254318(UnkStruct_ov23_022542D8 *param0) return 0; } -static void ov23_02254350(BmpList *param0, u32 param1, u8 param2) +static void ov23_02254350(ListMenu *param0, u32 param1, u8 param2) { const int v0[4] = { 5, @@ -156,21 +152,21 @@ static void ov23_02254350(BmpList *param0, u32 param1, u8 param2) static void ov23_0225437C(UnkStruct_ov23_022542D8 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1, v2; int v3 = 3; int v4 = 4; - param0->unk_24 = sub_02013A04(v3 + 1, 4); + param0->unk_24 = StringList_New(v3 + 1, 4); v1 = 12 * v4 * 2; v2 = 7 * (1 * 2); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_04, 3, 19, 3, 12, v4 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v1)); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_14, 3, 1, 1, 7, (1 * 2), 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v1 + v2)); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_04, 3, 19, 3, 12, v4 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v1)); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_14, 3, 1, 1, 7, (1 * 2), 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v1 + v2)); - Window_Show(¶m0->unk_04, 1, 1024 - (18 + 12) - 9, 11); - Window_Show(¶m0->unk_14, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(¶m0->unk_04, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(¶m0->unk_14, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v5; @@ -194,20 +190,20 @@ static void ov23_0225437C(UnkStruct_ov23_022542D8 *param0) } for (v6 = 0; v6 < v3 + 1; v6++) { - sub_02013A4C(param0->unk_24, v5, v7[v6], v6); + StringList_AddFromMessageBank(param0->unk_24, v5, v7[v6], v6); } MessageLoader_Free(v5); } v0 = Unk_ov23_02256B3C; - v0.unk_10 = v3 + 1; - v0.unk_12 = v4; - v0.unk_00 = param0->unk_24; - v0.unk_0C = ¶m0->unk_04; - v0.unk_04 = ov23_02254350; + v0.count = v3 + 1; + v0.maxDisplay = v4; + v0.choices = param0->unk_24; + v0.window = ¶m0->unk_04; + v0.cursorCallback = ov23_02254350; - param0->unk_28 = sub_0200112C(&v0, *(param0->unk_30), *(param0->unk_34), 4); + param0->unk_28 = ListMenu_New(&v0, *(param0->unk_30), *(param0->unk_34), 4); Window_CopyToVRAM(¶m0->unk_04); Window_CopyToVRAM(¶m0->unk_14); param0->unk_38 = 1; @@ -217,7 +213,7 @@ static void ov23_022544C0(UnkStruct_ov23_022542D8 *param0) { u32 v0; - v0 = sub_02001288(param0->unk_28); + v0 = ListMenu_ProcessInput(param0->unk_28); ov23_022549EC(param0); @@ -249,25 +245,25 @@ static void ov23_0225451C(UnkStruct_ov23_022542D8 *param0) { ov23_02254044(ov23_022421CC()); - Window_Clear(¶m0->unk_14, 1); - sub_02001384(param0->unk_28, param0->unk_30, param0->unk_34); - Window_Clear(¶m0->unk_04, 1); + Window_EraseStandardFrame(¶m0->unk_14, 1); + ListMenu_Free(param0->unk_28, param0->unk_30, param0->unk_34); + Window_EraseStandardFrame(¶m0->unk_04, 1); Bg_ScheduleTilemapTransfer(param0->unk_04.bgConfig, param0->unk_04.bgLayer); Window_Remove(¶m0->unk_04); Window_Remove(¶m0->unk_14); - sub_02013A3C(param0->unk_24); + StringList_Free(param0->unk_24); } -static void ov23_02254564(BmpList *param0, u32 param1, u8 param2) +static void ov23_02254564(ListMenu *param0, u32 param1, u8 param2) { u8 v0; v0 = param1 & 0x1; if (v0) { - sub_0200147C(param0, 1, 15, 2); + ListMenu_SetAltTextColors(param0, 1, 15, 2); } else { - sub_0200147C(param0, 2, 15, 2); + ListMenu_SetAltTextColors(param0, 2, 15, 2); } } @@ -287,7 +283,7 @@ void ov23_02254594(UnkStruct_ov23_02254594 *param0, FieldSystem *fieldSystem, u1 param0->unk_38 = param2; param0->unk_3C = param3; - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 2, 4); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 2, 4); } void ov23_022545C4(UnkStruct_ov23_02254594 *param0, const u8 param1, const u8 param2) @@ -342,8 +338,8 @@ static void ov23_0225461C(UnkStruct_ov23_02254594 *param0) } { - sub_020014DC(param0->unk_2C->unk_0C, &v2, &v3); - ov23_022549A8(param0->unk_04, v2, sub_02001504(param0->unk_2C->unk_0C, 2), sub_02001504(param0->unk_2C->unk_0C, 3)); + ListMenu_GetListAndCursorPos(param0->unk_2C->unk_0C, &v2, &v3); + ov23_022549A8(param0->unk_04, v2, ListMenu_GetAttribute(param0->unk_2C->unk_0C, 2), ListMenu_GetAttribute(param0->unk_2C->unk_0C, 3)); } switch (v0) { @@ -364,15 +360,15 @@ static void ov23_0225461C(UnkStruct_ov23_02254594 *param0) return; } -static void ov23_022546A0(BmpList *param0, u32 param1, u8 param2) +static void ov23_022546A0(ListMenu *param0, u32 param1, u8 param2) { int v0; UndergroundData *v1; u32 v2; u32 v3; - v1 = (UndergroundData *)sub_02001504(param0, 19); - v3 = sub_02001504(param0, 2); + v1 = (UndergroundData *)ListMenu_GetAttribute(param0, 19); + v3 = ListMenu_GetAttribute(param0, 2); v2 = (param1 >> 1); if (v2 == v3 - 1) { @@ -388,7 +384,7 @@ static void ov23_022546A0(BmpList *param0, u32 param1, u8 param2) static void ov23_022546E0(UnkStruct_ov23_02254594 *param0) { UndergroundData *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; int v2, v3; int v4; int v5; @@ -402,15 +398,15 @@ static void ov23_022546E0(UnkStruct_ov23_02254594 *param0) v5 = 7; } - param0->unk_28 = sub_02013A04(v4 + 1, 4); + param0->unk_28 = StringList_New(v4 + 1, 4); v2 = 12 * 7 * 2; v3 = 8 * (2 * 2); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_08, 3, 19, 3, 12, v5 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v2)); - Window_Add(param0->fieldSystem->unk_08, ¶m0->unk_18, 3, 1, 1, 8, (2 * 2), 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v2 + v3)); - Window_Show(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); - Window_Show(¶m0->unk_18, 1, 1024 - (18 + 12) - 9, 11); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_08, 3, 19, 3, 12, v5 * 2, 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v2)); + Window_Add(param0->fieldSystem->bgConfig, ¶m0->unk_18, 3, 1, 1, 8, (2 * 2), 13, (((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)) - (27 * 4)) - (v2 + v3)); + Window_DrawStandardFrame(¶m0->unk_08, 1, 1024 - (18 + 12) - 9, 11); + Window_DrawStandardFrame(¶m0->unk_18, 1, 1024 - (18 + 12) - 9, 11); { MessageLoader *v6; @@ -464,25 +460,25 @@ static void ov23_022546E0(UnkStruct_ov23_02254594 *param0) } v10 = (v7 << 1) + v11; - sub_02013A4C(param0->unk_28, v6, v8, v10); + StringList_AddFromMessageBank(param0->unk_28, v6, v8, v10); } v10 = (v7 << 1) + 1; - sub_02013A4C(param0->unk_28, v6, 277, v10); + StringList_AddFromMessageBank(param0->unk_28, v6, 277, v10); MessageLoader_Free(v6); } ov23_02253DFC(ov23_022421DC(), 626, 0); v1 = Unk_ov23_02256B3C; - v1.unk_08 = ov23_02254564; - v1.unk_10 = v4 + 1; - v1.unk_12 = v5; - v1.unk_00 = param0->unk_28; - v1.unk_0C = ¶m0->unk_08; - v1.unk_04 = ov23_022546A0; - v1.unk_1C = v0; + v1.printCallback = ov23_02254564; + v1.count = v4 + 1; + v1.maxDisplay = v5; + v1.choices = param0->unk_28; + v1.window = ¶m0->unk_08; + v1.cursorCallback = ov23_022546A0; + v1.tmp = v0; param0->unk_2C = ov23_02248C08(&v1, *(param0->unk_38), *(param0->unk_3C), 4, sub_02028A10, v0, 1); @@ -501,14 +497,14 @@ static void ov23_022546E0(UnkStruct_ov23_02254594 *param0) static void ov23_02254958(UnkStruct_ov23_02254594 *param0) { ov23_02254044(ov23_022421DC()); - Window_Clear(¶m0->unk_18, 1); + Window_EraseStandardFrame(¶m0->unk_18, 1); ov23_02248EF8(param0->unk_2C, param0->unk_38, param0->unk_3C); - Window_Clear(¶m0->unk_08, 1); + Window_EraseStandardFrame(¶m0->unk_08, 1); Bg_ScheduleTilemapTransfer(param0->unk_08.bgConfig, param0->unk_08.bgLayer); Window_Remove(¶m0->unk_08); Window_Remove(¶m0->unk_18); - sub_02013A3C(param0->unk_28); + StringList_Free(param0->unk_28); sub_0206A844(param0->unk_04); } @@ -536,7 +532,7 @@ static void ov23_022549EC(UnkStruct_ov23_022542D8 *param0) u16 v0; v0 = param0->unk_40; - sub_020014D0(param0->unk_28, ¶m0->unk_40); + ListMenu_CalcTrueCursorPos(param0->unk_28, ¶m0->unk_40); if (v0 != param0->unk_40) { Sound_PlayEffect(1500); diff --git a/src/overlay023/ov23_02254A14.c b/src/overlay023/ov23_02254A14.c index 41fbad2d1a..181fd995fe 100644 --- a/src/overlay023/ov23_02254A14.c +++ b/src/overlay023/ov23_02254A14.c @@ -224,11 +224,11 @@ static BOOL ov23_02254AD4(TaskManager *param0) ov23_02255EBC(1, v1); break; case 1: - sub_0200F174(1, 41, 41, 0x0, 6, 1, 4); + StartScreenTransition(1, 41, 41, 0x0, 6, 1, 4); ov23_02255EBC(2, v1); break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov23_02255EBC(3, v1); } break; @@ -257,11 +257,11 @@ static BOOL ov23_02254AD4(TaskManager *param0) break; case 9: Sound_PlayEffect(1550); - sub_0200F174(2, 40, 40, 0x0, 6, 1, 4); + StartScreenTransition(2, 40, 40, 0x0, 6, 1, 4); ov23_02255EBC(10, v1); break; case 10: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov23_022545D0(v1->unk_508); ov23_0225430C(v1->unk_504); ov5_021D1BEC(v1->unk_50C); diff --git a/src/overlay028/ov28_022561C0.c b/src/overlay028/ov28_022561C0.c index c401e0d16f..cba4ccbffd 100644 --- a/src/overlay028/ov28_022561C0.c +++ b/src/overlay028/ov28_022561C0.c @@ -637,13 +637,13 @@ static void ov28_02256914(UnkStruct_ov28_02256210 *param0, const UnkStruct_ov28_ v1 = SaveData_Pokedex(PoketchSystem_GetSaveData(param0->poketchSys)); - if (Pokedex_IsNationalUnlocked(v1)) { + if (Pokedex_IsNationalDexObtained(v1)) { v2 = v0; } else { v2 = Pokemon_NationalDexNumber((u16)v0); } - if (((v2 > 0) && (v2 <= NATIONAL_DEX_COUNT)) && Pokedex_HasEncountered(v1, v2)) { + if (v2 > 0 && v2 <= NATIONAL_DEX_COUNT && Pokedex_HasSeenSpecies(v1, v2)) { ov25_02254444(v2, 0); } } diff --git a/src/overlay056/ov56_022561C0.c b/src/overlay056/ov56_022561C0.c index 6a94f406f1..b5b82ac694 100644 --- a/src/overlay056/ov56_022561C0.c +++ b/src/overlay056/ov56_022561C0.c @@ -228,7 +228,7 @@ UnkStruct_ov56_02256468 *ov56_02256410(FieldSystem *fieldSystem) v0 = SysTask_GetParam(v1); v0->fieldSystem = fieldSystem; - v0->unk_14 = fieldSystem->unk_08; + v0->unk_14 = fieldSystem->bgConfig; v0->unk_04 = fieldSystem->unk_80; v0->unk_08 = fieldSystem->unk_7C; v0->unk_10 = SaveData_GetTrainerInfo(fieldSystem->saveData); diff --git a/src/overlay058/ov58_021D0D80.c b/src/overlay058/ov58_021D0D80.c index 9b2da2ce3b..fa3fa3a317 100644 --- a/src/overlay058/ov58_021D0D80.c +++ b/src/overlay058/ov58_021D0D80.c @@ -29,6 +29,7 @@ #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "string_template.h" @@ -40,7 +41,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015920.h" #include "unk_02017728.h" @@ -184,7 +184,7 @@ int ov58_021D0D80(OverlayManager *param0, int *param1) sub_0200F344(0, 0x0); sub_0200F344(1, 0x0); - sub_0200F174(0, 17, 17, 0x0, 16, 1, 39); + StartScreenTransition(0, 17, 17, 0x0, 16, 1, 39); { UnkStruct_0203DDFC *v2 = (UnkStruct_0203DDFC *)OverlayManager_Args(param0); @@ -250,7 +250,7 @@ int ov58_021D0F08(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (CommSys_CurNetId() != 0) { if (ov58_021D2A30() >= 2) { CommSys_SendData(128, NULL, 0); @@ -285,7 +285,7 @@ int ov58_021D0F08(OverlayManager *param0, int *param1) } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -594,8 +594,8 @@ static void ov58_021D142C(UnkStruct_02095EAC *param0, NARC *param1) Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 4, v0, 2, 0, 32 * 24 * 2, 1, 39); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 3, v0, 5, 0, 32 * 8 * 0x20, 1, 39); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 5, v0, 5, 0, 32 * 24 * 2, 1, 39); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_08->unk_08), 39); - sub_0200DAA4(v0, 0, 1 + (18 + 12), 11, 0, 39); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_08->unk_08), 39); + LoadStandardWindowGraphics(v0, 0, 1 + (18 + 12), 11, 0, 39); } static void ov58_021D1524(void) @@ -1047,7 +1047,7 @@ static int ov58_021D1E4C(UnkStruct_02095EAC *param0, int param1) ov58_021D2CB0(param0, 7); CommSys_SendData(126, &v1, sizeof(UnkStruct_02095FE4)); - sub_0200E084(¶m0->unk_33C, 1); + Window_EraseMessageBox(¶m0->unk_33C, 1); } ov58_021D2D10(param0); @@ -1056,7 +1056,7 @@ static int ov58_021D1E4C(UnkStruct_02095EAC *param0, int param1) case 2: ov58_021D2CB0(param0, 4); ov58_021D1CDC(param0->unk_2AC, 0); - sub_0200E084(¶m0->unk_33C, 1); + Window_EraseMessageBox(¶m0->unk_33C, 1); ov58_021D2D10(param0); Window_CopyToVRAM(¶m0->unk_32C); @@ -1153,7 +1153,7 @@ static int ov58_021D20C8(UnkStruct_02095EAC *param0, int param1) static int ov58_021D20F4(UnkStruct_02095EAC *param0, int param1) { if (++param0->unk_374 > 60) { - sub_0200F174(0, 16, 16, 0x0, 16, 1, 39); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 39); param1 = 3; } @@ -1204,7 +1204,7 @@ static int ov58_021D2180(UnkStruct_02095EAC *param0, int param1) case 2: ov58_021D2CB0(param0, 4); ov58_021D1CDC(param0->unk_2AC, 0); - sub_0200E084(¶m0->unk_33C, 1); + Window_EraseMessageBox(¶m0->unk_33C, 1); ov58_021D2D10(param0); if (CommSys_CurNetId() == 0) { @@ -1243,7 +1243,7 @@ static int ov58_021D2270(UnkStruct_02095EAC *param0, int param1) static int ov58_021D2298(UnkStruct_02095EAC *param0, int param1) { if (CommTiming_IsSyncState(200) || (CommSys_ConnectedCount() == 1)) { - sub_0200F174(0, 16, 16, 0x0, 16, 1, 39); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 39); param1 = 3; } @@ -1719,7 +1719,7 @@ static void ov58_021D2A98(UnkStruct_02095EAC *param0, int param1, int param2) Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_33C, 0xf0f); - sub_0200E060(¶m0->unk_33C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_33C, 0, 1, 10); if (param2 == 0) { param2 = 0; @@ -1747,7 +1747,7 @@ static int ov58_021D2B0C(int param0) static void ov58_021D2B2C(UnkStruct_02095EAC *param0) { - sub_0200E084(¶m0->unk_33C, 0); + Window_EraseMessageBox(¶m0->unk_33C, 0); } static void ov58_021D2B3C(UnkStruct_02095EAC *param0, int param1) diff --git a/src/overlay059/ov59_021D0D80.c b/src/overlay059/ov59_021D0D80.c index 12c9a527d0..8d0588e7f5 100644 --- a/src/overlay059/ov59_021D0D80.c +++ b/src/overlay059/ov59_021D0D80.c @@ -27,10 +27,12 @@ #include "gx_layers.h" #include "heap.h" #include "journal.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "string_template.h" @@ -38,13 +40,11 @@ #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201D15C.h" @@ -195,7 +195,7 @@ int ov59_021D0D80(OverlayManager *param0, int *param1) sub_0200F338(0); sub_0200F338(1); - sub_0200F174(0, 17, 17, 0x0, 16, 1, 51); + StartScreenTransition(0, 17, 17, 0x0, 16, 1, 51); ov59_021D1388(v0, v1); SetMainCallback(ov59_021D1100, v0); @@ -243,7 +243,7 @@ int ov59_021D0F00(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 1; if (CommSys_CurNetId() != 0) { @@ -278,7 +278,7 @@ int ov59_021D0F00(OverlayManager *param0, int *param1) } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -578,8 +578,8 @@ static void ov59_021D1388(UnkStruct_020961E8 *param0, NARC *param1) Graphics_LoadTilemapToBgLayer(12, 11, v0, 6, 0, 0, 1, 51); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 2, v0, 1, 0, 32 * 8 * 0x20, 1, 51); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 3, v0, 1, 0, 32 * 24 * 2, 1, 51); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_08->unk_08), 51); - sub_0200DAA4(v0, 0, 1 + (18 + 12), 11, 0, 51); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_08->unk_08), 51); + LoadStandardWindowGraphics(v0, 0, 1 + (18 + 12), 11, 0, 51); } static void ov59_021D1474(void) @@ -853,7 +853,7 @@ static const WindowTemplate Unk_ov59_021D3288 = { static int ov59_021D1A14(UnkStruct_020961E8 *param0, int param1) { - param0->unk_384 = sub_02002100(param0->unk_00, &Unk_ov59_021D3288, (1 + (18 + 12)), 11, 51); + param0->unk_384 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_ov59_021D3288, (1 + (18 + 12)), 11, 51); param0->unk_3A8 = 5; ov59_021D1994(param0); @@ -891,7 +891,7 @@ static int ov59_021D1A44(UnkStruct_020961E8 *param0, int param1) return param1; } - v1 = sub_02002114(param0->unk_384, 51); + v1 = Menu_ProcessInputAndHandleExit(param0->unk_384, 51); if (v1 != 0xffffffff) { if (v1 == 0xfffffffe) { @@ -980,7 +980,7 @@ static int ov59_021D1C14(UnkStruct_020961E8 *param0, int param1) static int ov59_021D1C34(UnkStruct_020961E8 *param0, int param1) { - param0->unk_384 = sub_02002100(param0->unk_00, &Unk_ov59_021D3288, (1 + (18 + 12)), 11, 51); + param0->unk_384 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_ov59_021D3288, (1 + (18 + 12)), 11, 51); param0->unk_3A8 = 23; ov59_021D1994(param0); @@ -1002,7 +1002,7 @@ static int ov59_021D1C64(UnkStruct_020961E8 *param0, int param1) return param1; } - v1 = sub_02002114(param0->unk_384, 51); + v1 = Menu_ProcessInputAndHandleExit(param0->unk_384, 51); if (v1 != 0xffffffff) { if (v1 == 0xfffffffe) { @@ -1100,7 +1100,7 @@ static int ov59_021D1E0C(UnkStruct_020961E8 *param0, int param1) } if (sub_02038EDC(param0->unk_08->unk_00, 2, ¶m0->unk_404)) { - sub_020057A4(1624, 8); + Sound_StopEffect(1624, 8); ov59_021D2628(param0, 13, 0); ov59_021D19B0(param0, 29); CellActor_SetAnim(param0->unk_28C[0], 0); @@ -1140,7 +1140,7 @@ static int ov59_021D1E98(UnkStruct_020961E8 *param0, int param1) static int ov59_021D1EB8(UnkStruct_020961E8 *param0, int param1) { if (++param0->unk_3B4 > 60) { - sub_0200F174(0, 16, 16, 0x0, 16, 1, 51); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 51); param1 = 3; } @@ -1150,7 +1150,7 @@ static int ov59_021D1EB8(UnkStruct_020961E8 *param0, int param1) static int ov59_021D1EF4(UnkStruct_020961E8 *param0, int param1) { - param0->unk_384 = sub_02002100(param0->unk_00, &Unk_ov59_021D3288, (1 + (18 + 12)), 11, 51); + param0->unk_384 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_ov59_021D3288, (1 + (18 + 12)), 11, 51); param0->unk_3A8 = 12; ov59_021D1994(param0); @@ -1171,7 +1171,7 @@ static int ov59_021D1F24(UnkStruct_020961E8 *param0, int param1) return param1; } - v0 = sub_02002114(param0->unk_384, 51); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_384, 51); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1236,7 +1236,7 @@ static int ov59_021D2064(UnkStruct_020961E8 *param0, int param1) { if (CommTiming_IsSyncState(201)) { CommMan_SetErrorHandling(0, 0); - sub_0200F174(0, 16, 16, 0x0, 16, 1, 51); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 51); param1 = 3; } @@ -1333,7 +1333,7 @@ void ov59_021D2204(UnkStruct_020961E8 *param0, int param1, u8 param2) break; case 13: if (param0->unk_384 != NULL) { - sub_02002154(param0->unk_384, 51); + Menu_DestroyForExit(param0->unk_384, 51); param0->unk_384 = NULL; } break; @@ -1345,7 +1345,7 @@ void ov59_021D2204(UnkStruct_020961E8 *param0, int param1, u8 param2) ov59_021D2628(param0, 12, 0); if (param0->unk_384 != NULL) { - sub_02002154(param0->unk_384, 51); + Menu_DestroyForExit(param0->unk_384, 51); param0->unk_384 = NULL; } break; @@ -1361,7 +1361,7 @@ void ov59_021D2204(UnkStruct_020961E8 *param0, int param1, u8 param2) } if (param0->unk_384 != NULL) { - sub_02002154(param0->unk_384, 51); + Menu_DestroyForExit(param0->unk_384, 51); param0->unk_384 = NULL; } @@ -1572,7 +1572,7 @@ static void ov59_021D2628(UnkStruct_020961E8 *param0, int param1, int param2) StringTemplate_Format(param0->unk_24, param0->unk_44, v0); Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_34C, 0xf0f); - sub_0200E060(¶m0->unk_34C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_34C, 0, 1, 10); if (param2 == 0) { param0->unk_4C = Text_AddPrinterWithParams(¶m0->unk_34C, FONT_MESSAGE, param0->unk_44, 0, 0, ov59_021D28D4(param0), NULL); @@ -1597,7 +1597,7 @@ static int ov59_021D26B8(int param0) static void ov59_021D26D8(UnkStruct_020961E8 *param0) { - sub_0200E084(¶m0->unk_34C, 0); + Window_EraseMessageBox(¶m0->unk_34C, 0); } static void ov59_021D26E8(UnkStruct_020961E8 *param0) @@ -1745,7 +1745,7 @@ static int ov59_021D292C(UnkStruct_020961E8 *param0, int param1) ov59_021D28D8(param0, -1); if (param0->unk_384 != NULL) { - sub_02002154(param0->unk_384, 51); + Menu_DestroyForExit(param0->unk_384, 51); param0->unk_384 = NULL; } diff --git a/src/overlay061/ov61_0222BF44.c b/src/overlay061/ov61_0222BF44.c index f528c21c61..868615c329 100644 --- a/src/overlay061/ov61_0222BF44.c +++ b/src/overlay061/ov61_0222BF44.c @@ -4,12 +4,8 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02025CCC_decl.h" #include "struct_decls/struct_0202B370_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_02017498.h" #include "struct_defs/struct_02099F80.h" @@ -24,17 +20,19 @@ #include "gx_layers.h" #include "heap.h" #include "inlines.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -67,14 +65,14 @@ typedef struct { Window unk_54; Window unk_64; Window unk_74; - UIControlData *unk_84; + Menu *unk_84; void *unk_88; int unk_8C; int unk_90; int unk_94; int unk_98; - ResourceMetadata *unk_9C; - BmpList *unk_A0; + StringList *unk_9C; + ListMenu *unk_A0; UnkStruct_ov61_0222C3B0 unk_A4; } UnkStruct_ov61_0222C664; @@ -94,7 +92,7 @@ static void ov61_0222C7F8(UnkStruct_ov61_0222C664 *param0, int param1, int param static int ov61_0222C834(int param0); static void ov61_0222C850(UnkStruct_ov61_0222C664 *param0); static void ov61_0222C86C(UnkStruct_ov61_0222C664 *param0); -static UIControlData *ov61_0222C884(BgConfig *param0, int param1, int param2); +static Menu *ov61_0222C884(BgConfig *param0, int param1, int param2); static void ov61_0222C8B8(UnkStruct_ov61_0222C664 *param0, MessageLoader *param1, int param2, int param3, u16 param4); static void ov61_0222C920(UnkStruct_ov61_0222C664 *param0, int param1, int param2); static BOOL ov61_0222C928(int param0, int param1); @@ -162,7 +160,7 @@ int ov61_0222BF44(OverlayManager *param0, int *param1) v0->unk_00 = OverlayManager_Args(param0); v0->unk_04 = BgConfig_New(117); - sub_0201DBEC(64, 117); + VRAMTransferManager_New(64, 117); SetAutorepeat(4, 8); ov61_0222C224(v0->unk_04); sub_0201E3D8(); @@ -179,7 +177,7 @@ int ov61_0222BF44(OverlayManager *param0, int *param1) ov61_0222C3B0(v0); ov61_0222C664(v0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 117); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 117); GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); @@ -216,7 +214,7 @@ int ov61_0222C0F8(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 1; } break; @@ -235,7 +233,7 @@ int ov61_0222C0F8(OverlayManager *param0, int *param1) } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -263,7 +261,7 @@ int ov61_0222C160(OverlayManager *param0, int *param1) ov61_0222C38C(v0->unk_04); SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_0201E530(); RenderControlFlags_SetCanABSpeedUpPrint(0); RenderControlFlags_SetAutoScrollFlags(0); @@ -437,8 +435,8 @@ static void ov61_0222C3B0(UnkStruct_ov61_0222C664 *param0) Graphics_LoadPaletteFromOpenNARC(v1, 3, 4, 0, 0, 117); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 117); Font_LoadScreenIndicatorsPalette(4, 13 * 0x20, 117); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(SaveData_Options(param0->unk_00->unk_00->unk_04)), 117); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 117); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(SaveData_Options(param0->unk_00->unk_00->unk_04)), 117); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 117); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 2, v0, 1, 0, 0, 0, 117); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 5, v0, 1, 0, 32 * 24 * 2, 0, 117); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 10, v0, 5, 0, 0, 0, 117); @@ -502,7 +500,7 @@ static void ov61_0222C794(UnkStruct_ov61_0222C664 *param0, int param1) MessageLoader_GetStrbuf(param0->unk_2C, param1, v0); StringTemplate_Format(param0->unk_20, param0->unk_3C, v0); Window_FillTilemap(¶m0->unk_64, 15); - Window_Show(¶m0->unk_64, 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_64, 1, (1 + (18 + 12)), 11); param0->unk_40 = Text_AddPrinterWithParams(¶m0->unk_64, FONT_MESSAGE, param0->unk_3C, 0, 0, TEXT_SPEED_INSTANT, NULL); param0->unk_40 = 0xff; @@ -521,7 +519,7 @@ static void ov61_0222C7F8(UnkStruct_ov61_0222C664 *param0, int param1, int param } StringTemplate_SetNumber(param0->unk_20, 0, param2, 5, 2, 1); - sub_0200E084(¶m0->unk_44, 1); + Window_EraseMessageBox(¶m0->unk_44, 1); ov61_0222C794(param0, v0); } @@ -538,19 +536,19 @@ static int ov61_0222C834(int param0) static void ov61_0222C850(UnkStruct_ov61_0222C664 *param0) { if (param0->unk_88 == NULL) { - param0->unk_88 = sub_0200E7FC(¶m0->unk_44, 1); + param0->unk_88 = Window_AddWaitDial(¶m0->unk_44, 1); } } static void ov61_0222C86C(UnkStruct_ov61_0222C664 *param0) { if (param0->unk_88 != NULL) { - DeleteWaitDial(param0->unk_88); + DestroyWaitDial(param0->unk_88); param0->unk_88 = NULL; } } -static UIControlData *ov61_0222C884(BgConfig *param0, int param1, int param2) +static Menu *ov61_0222C884(BgConfig *param0, int param1, int param2) { WindowTemplate v0; @@ -558,7 +556,7 @@ static UIControlData *ov61_0222C884(BgConfig *param0, int param1, int param2) v0.tilemapTop = param1; v0.baseTile = param2; - return sub_02002100(param0, &v0, (1 + (18 + 12)), 11, 117); + return Menu_MakeYesNoChoice(param0, &v0, (1 + (18 + 12)), 11, 117); } static void ov61_0222C8B8(UnkStruct_ov61_0222C664 *param0, MessageLoader *param1, int param2, int param3, u16 param4) @@ -570,7 +568,7 @@ static void ov61_0222C8B8(UnkStruct_ov61_0222C664 *param0, MessageLoader *param1 StringTemplate_Format(param0->unk_20, param0->unk_34, v0); Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_44, 0xf0f); - sub_0200E060(¶m0->unk_44, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_44, 0, 1, 10); param0->unk_40 = Text_AddPrinterWithParams(¶m0->unk_44, FONT_MESSAGE, param0->unk_34, 0, 0, param3, NULL); param0->unk_8C = 0; @@ -635,7 +633,7 @@ static int ov61_0222C960(UnkStruct_ov61_0222C664 *param0) param0->unk_90++; break; case 3: { - int v0 = sub_02002114(param0->unk_84, 117); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_84, 117); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -837,7 +835,7 @@ static int ov61_0222CC40(UnkStruct_ov61_0222C664 *param0) static int ov61_0222CC64(UnkStruct_ov61_0222C664 *param0) { if (gCoreSys.pressedKeys & PAD_BUTTON_A || gCoreSys.pressedKeys & PAD_BUTTON_B) { - Window_Clear(¶m0->unk_64, 0); + Window_EraseStandardFrame(¶m0->unk_64, 0); param0->unk_90 = 0; if (ov61_0222C928(-param0->unk_18, param0->unk_1C) == 1) { @@ -858,7 +856,7 @@ static int ov61_0222CCAC(UnkStruct_ov61_0222C664 *param0) sub_02039794(); ov61_0222C86C(param0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 117); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 117); param0->unk_08 = 0; return 1; diff --git a/src/overlay062/ov62_0222F2C0.c b/src/overlay062/ov62_0222F2C0.c index b1612bc24b..4004fcc9e2 100644 --- a/src/overlay062/ov62_0222F2C0.c +++ b/src/overlay062/ov62_0222F2C0.c @@ -54,7 +54,7 @@ void ov62_0222F2C0(UnkStruct_0208C06C *param0) GXLayers_DisableEngineBLayers(); GX_SetVisiblePlane(0); GXS_SetVisiblePlane(0); - sub_0201DBEC(4, 102); + VRAMTransferManager_New(4, 102); param0->unk_14.unk_00 = NARC_ctor(NARC_INDEX_RESOURCE__ENG__BATT_REC__BATT_REC_GRA, 102); param0->unk_14.unk_10 = BgConfig_New(102); @@ -209,7 +209,7 @@ void ov62_0222F514(UnkStruct_0208C06C *param0) ov62_022411EC(param0); SetMainCallback(NULL, NULL); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } static const BgTemplate Unk_ov62_022487B0[] = { diff --git a/src/overlay062/ov62_02231690.c b/src/overlay062/ov62_02231690.c index 74a9c1b86d..ed8db7520f 100644 --- a/src/overlay062/ov62_02231690.c +++ b/src/overlay062/ov62_02231690.c @@ -2034,7 +2034,7 @@ static void ov62_02233798(SysTask *param0, void *param1) sub_02008A94(v0->unk_14.unk_50); sub_0200C7EC(v0->unk_14.unk_08); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); v0->unk_14.unk_510 = 0; } diff --git a/src/overlay062/ov62_02234A10.c b/src/overlay062/ov62_02234A10.c index d0ebedbe0d..efaa04e172 100644 --- a/src/overlay062/ov62_02234A10.c +++ b/src/overlay062/ov62_02234A10.c @@ -70,7 +70,7 @@ static BOOL ov62_02234AB4(UnkStruct_0208C06C *param0) break; } - sub_0200F174(0, 1, 1, 0x0, 6, 1, 102); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 102); PaletteData_BlendMulti(param0->unk_14.unk_14, 2, 0xFFFE, 16, ov62_022316D0(param0)); PaletteData_BlendMulti(param0->unk_14.unk_14, 0, 0xBFFF, 16, ov62_022316D0(param0)); PaletteData_BlendMulti(param0->unk_14.unk_14, 3, 0x3FFE, 16, ov62_022316D0(param0)); @@ -80,7 +80,7 @@ static BOOL ov62_02234AB4(UnkStruct_0208C06C *param0) param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } @@ -183,7 +183,7 @@ static BOOL ov62_02234CDC(UnkStruct_0208C06C *param0) break; case 1: if (ov62_022300BC(param0) == 1) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } } else { diff --git a/src/overlay062/ov62_02235278.c b/src/overlay062/ov62_02235278.c index fecd2edb6c..e2e8ff1143 100644 --- a/src/overlay062/ov62_02235278.c +++ b/src/overlay062/ov62_02235278.c @@ -122,12 +122,12 @@ static BOOL ov62_02235324(UnkStruct_0208C06C *param0) if (param0->unk_0C != 0) { param0->unk_0C -= 4; } else { - sub_0200F174(0, 0, 0, 0, 6, 1, 102); + StartScreenTransition(0, 0, 0, 0, 6, 1, 102); param0->unk_08++; } break; default: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov62_02234540(param0, 0); return 1; } diff --git a/src/overlay062/ov62_02235E64.c b/src/overlay062/ov62_02235E64.c index d7aaa2e636..0db7476d43 100644 --- a/src/overlay062/ov62_02235E64.c +++ b/src/overlay062/ov62_02235E64.c @@ -438,11 +438,11 @@ static BOOL ov62_02236624(UnkStruct_0208C06C *param0) switch (param0->unk_08) { case 0: ov62_02231AAC(param0, 299); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 102); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 102); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } break; @@ -479,11 +479,11 @@ static BOOL ov62_022366D4(UnkStruct_0208C06C *param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 102); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 102); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } break; @@ -630,11 +630,11 @@ static BOOL ov62_02236920(UnkStruct_0208C06C *param0) PaletteData_BlendMulti(param0->unk_14.unk_14, 3, 0xC, v0->unk_08, param0->unk_14.unk_44); break; case 4: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 102); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 102); param0->unk_08++; break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } diff --git a/src/overlay062/ov62_02237D24.c b/src/overlay062/ov62_02237D24.c index c71c1c4f73..86a579927b 100644 --- a/src/overlay062/ov62_02237D24.c +++ b/src/overlay062/ov62_02237D24.c @@ -427,11 +427,11 @@ static BOOL ov62_022380B0(UnkStruct_0208C06C *param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 0, v1->unk_0C, v1->unk_04); param0->unk_08++; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_02233704(param0, 47); Sound_PlayEffect(1375); @@ -856,14 +856,14 @@ static BOOL ov62_02238B70(UnkStruct_0208C06C *param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 1, v1->unk_0C, v1->unk_04); v0->unk_2E4 = 0; param0->unk_0C = 0; sub_0208B9E0(param0->unk_6F0, 0); ov62_0222FB60(param0, 3); } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); param0->unk_08++; } @@ -1475,7 +1475,7 @@ static BOOL ov62_02239984(UnkStruct_0208C06C *param0, int param1) PokedexData *v10 = SaveData_Pokedex(param0->unk_830); for (v7 = v3; v7 < v4; v7++) { - v9 = Pokedex_HasEncountered(v10, v1[v7]); + v9 = Pokedex_HasSeenSpecies(v10, v1[v7]); if (v9 == 0) { v1[v7] = 0xFFFF; @@ -1521,7 +1521,7 @@ static void ov62_02239A0C(UnkStruct_0208C06C *param0, int param1) v4->unk_1D4.unk_00 = 0; for (v5 = v2; v5 < v3; v5++) { - v7 = Pokedex_HasEncountered(v8, v0[v5]); + v7 = Pokedex_HasSeenSpecies(v8, v0[v5]); if (v7 == 0) { v0[v5] = 0xFFFF; diff --git a/src/overlay062/ov62_02239D60.c b/src/overlay062/ov62_02239D60.c index b1ece971f7..d90f684982 100644 --- a/src/overlay062/ov62_02239D60.c +++ b/src/overlay062/ov62_02239D60.c @@ -686,11 +686,11 @@ static BOOL ov62_0223A64C(UnkStruct_0208C06C *param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 2, v1->unk_0C, v1->unk_04); param0->unk_08++; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_02233704(param0, 48); ov62_0223196C(param0, 1); Sound_PlayEffect(1375); @@ -1665,7 +1665,7 @@ static BOOL ov62_0223B980(UnkStruct_0208C06C *param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 3, v1->unk_0C, v1->unk_04); v0->unk_380.unk_08 = 0; @@ -1684,7 +1684,7 @@ static BOOL ov62_0223B980(UnkStruct_0208C06C *param0) ov62_02234540(param0, 0); param0->unk_08 = 7; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); param0->unk_08++; } diff --git a/src/overlay062/ov62_0223CAEC.c b/src/overlay062/ov62_0223CAEC.c index e259ea99a2..a2e336311c 100644 --- a/src/overlay062/ov62_0223CAEC.c +++ b/src/overlay062/ov62_0223CAEC.c @@ -987,7 +987,7 @@ static BOOL ov62_0223D744 (UnkStruct_0208C06C * param0) break; case 2: if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_02231B8C(param0); ov62_022348B8(param0, 4, v1->unk_0C, v1->unk_04); sub_0208B9E0(param0->unk_6F0, 0); @@ -1005,7 +1005,7 @@ static BOOL ov62_0223D744 (UnkStruct_0208C06C * param0) v0->unk_720.unk_0C[1].unk_04 = ov62_0223D124(param0, v0->unk_720.unk_0C[1].unk_00 - 1); v0->unk_720.unk_0C[2].unk_04 = ov62_0223D124(param0, v0->unk_720.unk_0C[2].unk_00 - 1); } - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_08++; } break; @@ -1018,7 +1018,7 @@ static BOOL ov62_0223D744 (UnkStruct_0208C06C * param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 5, v1->unk_0C, v1->unk_04); sub_0208B9E0(param0->unk_6F0, 0); param0->unk_08 = 5; @@ -1041,7 +1041,7 @@ static BOOL ov62_0223D744 (UnkStruct_0208C06C * param0) sub_0208B9E0(param0->unk_6F0, 0); param0->unk_08 = 5; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); param0->unk_08 = 0xFF; } diff --git a/src/overlay062/ov62_0223DFA8.c b/src/overlay062/ov62_0223DFA8.c index 4797d61d02..849f6596ba 100644 --- a/src/overlay062/ov62_0223DFA8.c +++ b/src/overlay062/ov62_0223DFA8.c @@ -329,12 +329,12 @@ static BOOL ov62_0223E22C (UnkStruct_0208C06C * param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 8, v1->unk_0C, v1->unk_04); param0->unk_08++; v0->unk_1FC0 = 0; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_08 = 0xFF; v0->unk_1FC0 = 1; param0->unk_878 = ¶m0->unk_8B4.unk_3904[param0->unk_14.unk_48C.unk_38.unk_00]; @@ -468,11 +468,11 @@ static BOOL ov62_0223E510 (UnkStruct_0208C06C * param0) } if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_08++; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); param0->unk_08++; } @@ -1076,11 +1076,11 @@ static BOOL ov62_0223F348 (UnkStruct_0208C06C * param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 7, v1->unk_0C, v1->unk_04); param0->unk_08++; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); if (param0->unk_8B4.unk_3900 == 0) { @@ -1624,11 +1624,11 @@ static BOOL ov62_0223FF90 (UnkStruct_0208C06C * param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 102); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 102); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } @@ -1734,11 +1734,11 @@ static BOOL ov62_02240084 (UnkStruct_0208C06C * param0) PaletteData_BlendMulti(param0->unk_14.unk_14, 3, 0xC, v0->unk_08, param0->unk_14.unk_44); break; case 4: - sub_0200F174(0, 1, 1, 0, 6, 1, 102); + StartScreenTransition(0, 1, 1, 0, 6, 1, 102); param0->unk_08++; break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } diff --git a/src/overlay062/ov62_02241204.c b/src/overlay062/ov62_02241204.c index 5b85cc4154..83db14ef1c 100644 --- a/src/overlay062/ov62_02241204.c +++ b/src/overlay062/ov62_02241204.c @@ -1519,7 +1519,7 @@ static BOOL ov62_02242748 (UnkStruct_0208C06C * param0, int param1) PokedexData * v10 = SaveData_Pokedex(param0->unk_830); for (v7 = v3; v7 < v4; v7++) { - v9 = Pokedex_HasEncountered(v10, v1[v7]); + v9 = Pokedex_HasSeenSpecies(v10, v1[v7]); if (v9 == 0) { v1[v7] = 0xFFFF; @@ -1565,7 +1565,7 @@ static void ov62_022427D0 (UnkStruct_0208C06C * param0, int param1) v4->unk_4C8.unk_00 = 0; for (v5 = v2; v5 < v3; v5++) { - v7 = Pokedex_HasEncountered(v8, v0[v5]); + v7 = Pokedex_HasSeenSpecies(v8, v0[v5]); if (v7 == 0) { v0[v5] = 0xFFFF; @@ -1771,12 +1771,12 @@ static BOOL ov62_02242BB8 (UnkStruct_0208C06C * param0) break; case 2: if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022345B8(param0, 7, v1->unk_0C, v1->unk_04); param0->unk_8B4.unk_3900 = 0; param0->unk_08++; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_14.unk_4F0.unk_0C = 118; param0->unk_08++; } @@ -2404,13 +2404,13 @@ static BOOL ov62_0224391C (UnkStruct_0208C06C * param0) break; case 4: if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_02231B8C(param0); ov62_022348B8(param0, 8, v1->unk_0C, v1->unk_04); param0->unk_08++; v0->unk_4B8 = 0; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_08 = 0xFF; v0->unk_4B8 = 1; param0->unk_878 = ¶m0->unk_8B4.unk_3904[param0->unk_14.unk_48C.unk_38.unk_00]; @@ -2513,11 +2513,11 @@ static BOOL ov62_02243B1C (UnkStruct_0208C06C * param0) PaletteData_BlendMulti(param0->unk_14.unk_14, 3, 0xC, v0->unk_08, param0->unk_14.unk_44); break; case 4: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 102); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 102); param0->unk_08++; break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } break; @@ -2861,14 +2861,14 @@ static BOOL ov62_02244258 (UnkStruct_0208C06C * param0) ov62_02231A1C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v2) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); G2_BlendNone(); ov62_022348B8(param0, 8, v2->unk_0C, v2->unk_04); ov62_0223376C(param0, 0); param0->unk_08++; v0->unk_4B8 = 0; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_08 = 0xFF; v0->unk_4B8 = 1; Sound_PlayEffect(1375); @@ -3543,11 +3543,11 @@ static BOOL ov62_02245018 (UnkStruct_0208C06C * param0) PaletteData_BlendMulti(param0->unk_14.unk_14, 3, 0xC, v0->unk_08, param0->unk_14.unk_44); break; case 4: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 102); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 102); param0->unk_08++; break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } break; @@ -3610,7 +3610,7 @@ static BOOL ov62_0224536C (UnkStruct_0208C06C * param0) ov62_02231B8C(param0); if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); ov62_022348B8(param0, 6, v1->unk_0C, v1->unk_04); sub_0208B9E0(param0->unk_6F0, 0); sub_0208BA08(param0->unk_6F0, 0, 0); @@ -3619,7 +3619,7 @@ static BOOL ov62_0224536C (UnkStruct_0208C06C * param0) } else { ov62_02231AAC(param0, 119); ov62_022469A0(v0, param0); - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); param0->unk_08++; } @@ -4374,10 +4374,10 @@ static BOOL ov62_0224613C (UnkStruct_0208C06C * param0) } if (ov61_0222BB48(ov62_0224112C(param0), &v1) == 1) { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); param0->unk_08++; } else { - sub_020057A4(1381, 0); + Sound_StopEffect(1381, 0); Sound_PlayEffect(1375); param0->unk_08++; } @@ -4606,11 +4606,11 @@ static BOOL ov62_02246850 (UnkStruct_0208C06C * param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0, 6, 1, 102); + StartScreenTransition(0, 0, 0, 0, 6, 1, 102); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08++; } break; diff --git a/src/overlay062/ov62_02248408.c b/src/overlay062/ov62_02248408.c index 6cfe295181..bef29dfd82 100644 --- a/src/overlay062/ov62_02248408.c +++ b/src/overlay062/ov62_02248408.c @@ -81,7 +81,7 @@ void ov62_02248408(BattleRecording *param0, BattleParams *param1, int param2) Strbuf_CopyChars(v6, v8); if (Font_AreAllCharsValid(FONT_SYSTEM, v6, v7) == 0) { - Pokemon_SetValue(v13, 179, NULL); + Pokemon_SetValue(v13, MON_DATA_SPECIES_NAME, NULL); continue; } } diff --git a/src/overlay064/ov64_0222DCE0.c b/src/overlay064/ov64_0222DCE0.c index 8d606d941a..de1955b48c 100644 --- a/src/overlay064/ov64_0222DCE0.c +++ b/src/overlay064/ov64_0222DCE0.c @@ -4,13 +4,9 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202B370_decl.h" #include "struct_decls/struct_0203068C_decl.h" #include "struct_defs/struct_0200C738.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0208737C.h" #include "struct_defs/struct_02089438.h" #include "struct_defs/struct_02099F80.h" @@ -20,7 +16,6 @@ #include "overlay063/struct_ov63_0222AE60_decl.h" #include "overlay063/struct_ov63_0222BB38_decl.h" #include "overlay064/struct_ov64_022302EC.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "ascii_util.h" #include "bag.h" @@ -35,29 +30,29 @@ #include "gx_layers.h" #include "heap.h" #include "inlines.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" #include "overlay_manager.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0201E86C.h" @@ -145,7 +140,7 @@ typedef struct { void * unk_14; NNSG2dScreenData * unk_18; Window unk_1C; - UIControlData * unk_2C; + Menu *unk_2C; u32 unk_30; u32 unk_34; Strbuf* unk_38; @@ -177,9 +172,9 @@ typedef struct { u32 unk_D8; u32 unk_DC; Window unk_E0; - ResourceMetadata * unk_F0[2]; - BmpList * unk_F8; - UIControlData * unk_FC; + StringList *unk_F0[2]; + ListMenu *unk_F8; + Menu *unk_FC; s32 unk_100; CellActor * unk_104; u32 unk_108; @@ -317,7 +312,7 @@ static void ov64_0222FE70(UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E static BOOL ov64_0222FEFC(const UnkStruct_ov64_0222F0C4 * param0); static void ov64_0222FF18(UnkStruct_ov64_0222F0C4 * param0); static u32 ov64_0222FF38(const UnkStruct_ov64_0222F0C4 * param0); -static void ov64_0222FF48(BmpList * param0, u32 param1, u8 param2); +static void ov64_0222FF48(ListMenu *param0, u32 param1, u8 param2); static void ov64_0222FF5C(UnkStruct_ov64_0222F0C4 * param0); static BOOL ov64_02230008(UnkStruct_ov64_0222F0C4 * param0); static void ov64_02230044(UnkStruct_ov64_0222F0C4 * param0); @@ -538,7 +533,7 @@ static const UnkStruct_ov64_022322E4 Unk_ov64_022322E4[2][4] = { } }; -static const UnkStruct_ov84_02240FA8 Unk_ov64_0223226C = { +static const ListMenuTemplate Unk_ov64_0223226C = { NULL, ov64_0222FF48, NULL, @@ -971,7 +966,7 @@ static void ov64_0222E3D8 (UnkStruct_ov64_0222E21C * param0, u32 param1) NNS_G2dInitOamManagerModule(); - sub_0201DBEC(16, param1); + VRAMTransferManager_New(16, param1); sub_0200A784(0, 126, 0, 30, 0, 126, 0, 30, param1); { @@ -1030,7 +1025,7 @@ static void ov64_0222E570 (UnkStruct_ov64_0222E21C * param0) sub_0201E958(); sub_0201F8B4(); sub_0200A878(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } static void ov64_0222E5D8 (UnkStruct_ov64_0222E21C * param0, u32 param1) @@ -1052,8 +1047,8 @@ static void ov64_0222E620 (UnkStruct_ov64_0222E21C * param0, const UnkStruct_ov6 v0 = Options_Frame(SaveData_Options(param1->unk_00)); Font_LoadScreenIndicatorsPalette(0, 7 * 0x20, param2); - sub_0200DD0C(param0->unk_00, Unk_ov64_02232258[1], (1 + 9), 8, v0, param2); - sub_0200DAA4(param0->unk_00, Unk_ov64_02232258[1], 1, 9, 0, param2); + LoadMessageBoxGraphics(param0->unk_00, Unk_ov64_02232258[1], (1 + 9), 8, v0, param2); + LoadStandardWindowGraphics(param0->unk_00, Unk_ov64_02232258[1], 1, 9, 0, param2); Window_Init(¶m0->unk_220); Window_Add(param0->unk_00, ¶m0->unk_220, Unk_ov64_02232258[1], 1, 0, 24, 3, 7, ((1 + 9) + (18 + 12))); @@ -1261,11 +1256,11 @@ static int ov64_0222EA70 (UnkStruct_ov64_0222F038 * param0, UnkStruct_ov64_0222E switch (param1->unk_04) { case 0: ov64_0222EE20(param0, param1, param2); - sub_0200F174(0, 17, 17, 0x0, 6, 1, param3); + StartScreenTransition(0, 17, 17, 0x0, 6, 1, param3); param1->unk_04 = 1; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param1->unk_04 = 3; } break; @@ -1295,21 +1290,21 @@ static int ov64_0222EA70 (UnkStruct_ov64_0222F038 * param0, UnkStruct_ov64_0222E } break; case 4: - sub_0200F174(0, 16, 16, 0x0, 6, 1, param3); + StartScreenTransition(0, 16, 16, 0x0, 6, 1, param3); param1->unk_04++; break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; case 6: ov64_0222EE20(param0, param1, param2); - sub_0200F174(0, 17, 17, 0x0, 6, 1, param3); + StartScreenTransition(0, 17, 17, 0x0, 6, 1, param3); param1->unk_04 = 7; break; case 7: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { u64 v1; TrainerInfo * v2; @@ -1336,7 +1331,7 @@ static int ov64_0222EA70 (UnkStruct_ov64_0222F038 * param0, UnkStruct_ov64_0222E break; } - param0->unk_2C = sub_02002100(param2->unk_00, &Unk_ov64_022321CA, 1, 9, param3); + param0->unk_2C = Menu_MakeYesNoChoice(param2->unk_00, &Unk_ov64_022321CA, 1, 9, param3); param1->unk_04 = 9; break; case 9: @@ -1347,7 +1342,7 @@ static int ov64_0222EA70 (UnkStruct_ov64_0222F038 * param0, UnkStruct_ov64_0222E 0, 50, 54, }; - v3 = sub_02002114(param0->unk_2C, param3); + v3 = Menu_ProcessInputAndHandleExit(param0->unk_2C, param3); switch (v3) { case 0xffffffff: @@ -1685,7 +1680,7 @@ static void ov64_0222EFBC (UnkStruct_ov64_0222F038 * param0, UnkStruct_ov64_0222 param0->unk_30 = Text_AddPrinterWithParamsAndColor(¶m0->unk_1C, FONT_MESSAGE, param0->unk_38, 0, 0, param0->unk_34, TEXT_COLOR(1, 2, 0), NULL); - sub_0200E060(¶m0->unk_1C, 1, (1 + 9), 8); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1C, 1, (1 + 9), 8); Window_ScheduleCopyToVRAM(¶m0->unk_1C); Strbuf_Free(v0); } @@ -1701,7 +1696,7 @@ static BOOL ov64_0222F038 (const UnkStruct_ov64_0222F038 * param0) static void ov64_0222F050 (UnkStruct_ov64_0222F038 * param0) { - sub_0200E084(¶m0->unk_1C, 1); + Window_EraseMessageBox(¶m0->unk_1C, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_1C); } @@ -1815,7 +1810,7 @@ static int ov64_0222F0C4 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E param1->unk_04 = 1; break; case 10: - sub_0200F174(0, 16, 16, 0x0, 6, 1, param3); + StartScreenTransition(0, 16, 16, 0x0, 6, 1, param3); v2 = ov64_0222FF38(param0); v1 = sub_0202B370(param1->unk_00); @@ -1824,7 +1819,7 @@ static int ov64_0222F0C4 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E param1->unk_04 = 11; break; case 11: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov64_0222F6E8(param0, param1, param2); ov64_0222E074(param1, 2, 4); return 1; @@ -1836,11 +1831,11 @@ static int ov64_0222F0C4 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E sub_0202AF0C(v1, param1->unk_08.unk_04[v2], param1->unk_2C.unk_00); case 13: ov64_0222F668(param0, param1, param2, param3); - sub_0200F174(0, 17, 17, 0x0, 6, 1, param3); + StartScreenTransition(0, 17, 17, 0x0, 6, 1, param3); param1->unk_04 = 14; break; case 14: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param1->unk_04 = 2; } break; @@ -1856,7 +1851,7 @@ static int ov64_0222F0C4 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E } break; case 17: - v0 = sub_02002114(param0->unk_FC, param3); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_FC, param3); switch (v0) { case 0xffffffff: @@ -2081,7 +2076,7 @@ asm static void ov64_0222F414 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_ _0222F530: ldr r1, [sp, #0x18] mov r0, #4 - bl sub_02013A04 + bl StringList_New add r1, r6, #0 add r1, #0xf4 ldr r5, [sp, #0x20] @@ -2096,7 +2091,7 @@ asm static void ov64_0222F414 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_ ldr r1, [r7, r1] ldr r2, [r5, #0] ldr r3, [r5, #4] - bl sub_02013A4C + bl StringList_AddFromMessageBank add r4, r4, #1 add r5, #8 cmp r4, #4 @@ -2172,7 +2167,7 @@ static void ov64_0222F5F4 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222 Strbuf_Free(param0->unk_D4); for (v0 = 0; v0 < 2; v0++) { - sub_02013A3C(param0->unk_F0[v0]); + StringList_Free(param0->unk_F0[v0]); } Window_Remove(¶m0->unk_E0); @@ -2404,7 +2399,7 @@ static BOOL ov64_0222F948 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222 static void ov64_0222FA70 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E060 * param1, UnkStruct_ov64_0222E21C * param2, u32 param3) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; UnkStruct_0202B370 * v1; u32 v2; u32 v3; @@ -2415,15 +2410,15 @@ static void ov64_0222FA70 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222 v0 = Unk_ov64_0223226C; if (v2 == 2) { - v0.unk_00 = param0->unk_F0[1]; + v0.choices = param0->unk_F0[1]; } else { - v0.unk_00 = param0->unk_F0[0]; + v0.choices = param0->unk_F0[0]; } - v0.unk_0C = ¶m0->unk_E0; - param0->unk_F8 = sub_0200112C(&v0, 0, 0, param3); + v0.window = ¶m0->unk_E0; + param0->unk_F8 = ListMenu_New(&v0, 0, 0, param3); - Window_Show(¶m0->unk_E0, 1, 1, 9); + Window_DrawStandardFrame(¶m0->unk_E0, 1, 1, 9); Window_ScheduleCopyToVRAM(¶m0->unk_E0); ov64_0222E880(param2, param1->unk_00, param1->unk_08.unk_04[v3], param3); @@ -2440,7 +2435,7 @@ static u32 ov64_0222FB24 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E return v1; } - v0 = sub_02001288(param0->unk_F8); + v0 = ListMenu_ProcessInput(param0->unk_F8); switch (v0) { case 0xffffffff: @@ -2458,9 +2453,9 @@ static u32 ov64_0222FB24 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222E ov64_0222FF18(param0); - Window_Clear(¶m0->unk_E0, 1); + Window_EraseStandardFrame(¶m0->unk_E0, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_E0); - sub_02001384(param0->unk_F8, NULL, NULL); + ListMenu_Free(param0->unk_F8, NULL, NULL); if (v1 == 2) { ov64_0222EA28(param2, 1); @@ -2508,7 +2503,7 @@ static BOOL ov64_0222FC48 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222 return 0; } - param0->unk_FC = sub_02002100(param2->unk_00, &Unk_ov64_022321CA, 1, 9, param3); + param0->unk_FC = Menu_MakeYesNoChoice(param2->unk_00, &Unk_ov64_022321CA, 1, 9, param3); return 1; } @@ -2580,7 +2575,7 @@ static void ov64_0222FE70 (UnkStruct_ov64_0222F0C4 * param0, UnkStruct_ov64_0222 param0->unk_D8 = Text_AddPrinterWithParamsAndColor(¶m0->unk_C4, FONT_MESSAGE, param0->unk_D4, 0, 0, param0->unk_DC, TEXT_COLOR(1, 2, 0), NULL); - sub_0200E060(¶m0->unk_C4, 1, (1 + 9), 8); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_C4, 1, (1 + 9), 8); Window_ScheduleCopyToVRAM(¶m0->unk_C4); Strbuf_Free(v0); } @@ -2596,7 +2591,7 @@ static BOOL ov64_0222FEFC (const UnkStruct_ov64_0222F0C4 * param0) static void ov64_0222FF18 (UnkStruct_ov64_0222F0C4 * param0) { - sub_0200E084(¶m0->unk_C4, 1); + Window_EraseMessageBox(¶m0->unk_C4, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_C4); Window_ScheduleCopyToVRAM(¶m0->unk_B4); } @@ -2611,7 +2606,7 @@ static u32 ov64_0222FF38 (const UnkStruct_ov64_0222F0C4 * param0) return v0; } -static void ov64_0222FF48 (BmpList * param0, u32 param1, u8 param2) +static void ov64_0222FF48 (ListMenu * param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); diff --git a/src/overlay065/ov65_0222DCE0.c b/src/overlay065/ov65_0222DCE0.c index 81c5319920..6b80666988 100644 --- a/src/overlay065/ov65_0222DCE0.c +++ b/src/overlay065/ov65_0222DCE0.c @@ -5,7 +5,6 @@ #include #include "struct_decls/pokedexdata_decl.h" -#include "struct_decls/struct_0200112C_decl.h" #include "struct_decls/struct_02012B20_decl.h" #include "struct_decls/struct_0202B370_decl.h" #include "struct_decls/struct_0202C878_decl.h" @@ -25,7 +24,6 @@ #include "overlay065/struct_ov65_0222F6EC.h" #include "overlay065/struct_ov65_02234E50.h" #include "overlay065/struct_ov65_022354D8.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay098/struct_ov98_02247168.h" #include "assert.h" @@ -45,6 +43,8 @@ #include "heap.h" #include "inlines.h" #include "journal.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" @@ -53,26 +53,24 @@ #include "poffin.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "rtc.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "touch_screen.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0201E3D8.h" @@ -764,7 +762,7 @@ int ov65_0222E2A8 (OverlayManager * param0, int * param1) v0 = OverlayManager_NewData(param0, sizeof(UnkStruct_ov65_0222EBE0), 54); MI_CpuFill8(v0, 0, sizeof(UnkStruct_ov65_0222EBE0)); - sub_0201DBEC(32, 54); + VRAMTransferManager_New(32, 54); v0->unk_180 = 8; v0->unk_160 = v1->unk_00; @@ -779,7 +777,7 @@ int ov65_0222E2A8 (OverlayManager * param0, int * param1) ov65_0222EBE0(v0); ov65_0222E01C(v0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 54); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 54); if (sub_020389B8()) { sub_02039734(); @@ -807,7 +805,7 @@ int ov65_0222E3FC (OverlayManager * param0, int * param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 1; } break; @@ -824,7 +822,7 @@ int ov65_0222E3FC (OverlayManager * param0, int * param1) } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -900,7 +898,7 @@ int ov65_0222E548 (OverlayManager * param0, int * param1) OverlayManager_FreeData(param0); sub_0201E530(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); Heap_Destroy(54); switch (v0->unk_3AC) { @@ -1402,7 +1400,7 @@ static int ov65_0222EBAC (u32 param0) static int ov65_0222EBB8 (void) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 54); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 54); ov65_02231A0C(); return 18; @@ -1467,9 +1465,9 @@ static void ov65_0222ECA8 (UnkStruct_ov65_0222EBE0 * param0, NARC * param1) { int v1 = Options_Frame(SaveData_Options(param0->unk_160)); - sub_0200DD0C(v0, 2, (512 - (18 + 12)), 10, v1, 54); - sub_0200DAA4(v0, 2, ((512 - (18 + 12)) - 9), 11, 0, 54); - sub_0200DAA4(v0, 1, ((512 - (18 + 12)) - 9), 11, 0, 54); + LoadMessageBoxGraphics(v0, 2, (512 - (18 + 12)), 10, v1, 54); + LoadStandardWindowGraphics(v0, 2, ((512 - (18 + 12)) - 9), 11, 0, 54); + LoadStandardWindowGraphics(v0, 1, ((512 - (18 + 12)) - 9), 11, 0, 54); } } @@ -1518,7 +1516,7 @@ static void ov65_0222EE98 (UnkStruct_ov65_0222EBE0 * param0) int v0, v1; if (Window_IsInUse(¶m0->unk_350)) { - Window_Clear(¶m0->unk_350, 0); + Window_EraseStandardFrame(¶m0->unk_350, 0); Window_Remove(¶m0->unk_350); } @@ -1562,11 +1560,11 @@ static void ov65_0222EF4C (UnkStruct_ov65_0222EBE0 * param0) } if (param0->unk_150) { - sub_02001384(param0->unk_150, NULL, NULL); + ListMenu_Free(param0->unk_150, NULL, NULL); } if (param0->unk_14C) { - sub_02013A3C(param0->unk_14C); + StringList_Free(param0->unk_14C); param0->unk_14C = NULL; } @@ -1633,7 +1631,7 @@ static int ov65_0222F010 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02232CA8(param0, 18); - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_02238954, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_02238954, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 6; } else if (!DWC_CheckValidConsole(sub_0202AD28(param0->unk_00))) { ov65_02232CA8(param0, 20); @@ -1650,7 +1648,7 @@ static int ov65_0222F010 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F164 (UnkStruct_ov65_0222EBE0 * param0, int param1) { if (Text_IsPrinterActive(param0->unk_180) == 0) { - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_02238944, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_02238944, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 2; } @@ -1660,7 +1658,7 @@ static int ov65_0222F164 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F1A8 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; @@ -1669,7 +1667,7 @@ static int ov65_0222F1A8 (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_04 = sub_0203871C(param0->unk_160, sizeof(UnkStruct_0207DFAC)); ov65_02232B58(param0, 23, 1); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); param0->unk_3A8 = 14; } else { param0->unk_3A8 = 34; @@ -1688,7 +1686,7 @@ static int ov65_0222F21C (UnkStruct_ov65_0222EBE0 * param0, int param1) Bg_SetPriority(1, 0); Bg_SetPriority(0, 3); - param0->unk_184 = sub_02002054(param0->unk_15C, &Unk_ov65_02238954, ((512 - (18 + 12)) - 9), 11, 1, 54); + param0->unk_184 = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_15C, &Unk_ov65_02238954, ((512 - (18 + 12)) - 9), 11, 1, 54); param0->unk_3A8 = 4; } @@ -1698,17 +1696,17 @@ static int ov65_0222F21C (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F288 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; } else { - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); if (v1 == 0) { ov65_02232CA8(param0, 22); - param0->unk_184 = sub_02002054(param0->unk_15C, &Unk_ov65_02238954, ((512 - (18 + 12)) - 9), 11, 1, 54); + param0->unk_184 = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_15C, &Unk_ov65_02238954, ((512 - (18 + 12)) - 9), 11, 1, 54); param0->unk_3A8 = 5; } else { param0->unk_3A8 = 34; @@ -1721,7 +1719,7 @@ static int ov65_0222F288 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F304 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; @@ -1730,7 +1728,7 @@ static int ov65_0222F304 (UnkStruct_ov65_0222EBE0 * param0, int param1) Bg_SetPriority(2, 0); Bg_SetPriority(1, 1); Bg_SetPriority(0, 3); - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); if (v1 == 0) { @@ -1741,7 +1739,7 @@ static int ov65_0222F304 (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_04 = sub_0203871C(param0->unk_160, sizeof(UnkStruct_0207DFAC)); ov65_02232B58(param0, 23, 1); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); param0->unk_3C8 = 1; } else { param0->unk_3A8 = 34; @@ -1754,7 +1752,7 @@ static int ov65_0222F304 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F3DC (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; @@ -1763,7 +1761,7 @@ static int ov65_0222F3DC (UnkStruct_ov65_0222EBE0 * param0, int param1) Bg_SetPriority(1, 1); Bg_SetPriority(3, 0); Bg_SetPriority(2, 0); - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); if (v1 == 0) { @@ -1771,7 +1769,7 @@ static int ov65_0222F3DC (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_04 = sub_0203871C(param0->unk_160, sizeof(UnkStruct_0207DFAC)); ov65_02232B58(param0, 23, 1); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); param0->unk_3C8 = 1; } else { param0->unk_3A8 = 34; @@ -1812,7 +1810,7 @@ static void ov65_0222F4C4 (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_04->unk_00.unk_18 = TrainerInfo_GameCode(v0); param0->unk_04->unk_00.unk_19 = TrainerInfo_RegionCode(v0); - param0->unk_04->unk_00.unk_1A = Pokedex_IsNationalUnlocked(v1); + param0->unk_04->unk_00.unk_1A = Pokedex_IsNationalDexObtained(v1); param0->unk_04->unk_00.unk_1B = 29; ov65_02232E70(param0, param1); @@ -1955,7 +1953,7 @@ static int ov65_0222F7AC (UnkStruct_ov65_0222EBE0 * param0, int param1) { if (gCoreSys.pressedKeys & (PAD_BUTTON_B | PAD_BUTTON_A)) { if (Window_IsInUse(¶m0->unk_360)) { - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); } @@ -1986,7 +1984,7 @@ static int ov65_0222F808 (UnkStruct_ov65_0222EBE0 * param0, int param1) if (gCoreSys.pressedKeys & (PAD_BUTTON_B | PAD_BUTTON_A)) { if (Window_IsInUse(¶m0->unk_360)) { - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); } @@ -2000,7 +1998,7 @@ static int ov65_0222F808 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F868 (UnkStruct_ov65_0222EBE0 * param0, int param1) { if (Text_IsPrinterActive(param0->unk_180) == 0) { - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 12; } @@ -2010,7 +2008,7 @@ static int ov65_0222F868 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0222F8AC (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; @@ -2054,7 +2052,7 @@ static int ov65_0222F90C (UnkStruct_ov65_0222EBE0 * param0, int param1) } if (Window_IsInUse(¶m0->unk_350)) { - Window_Clear(¶m0->unk_350, 0); + Window_EraseStandardFrame(¶m0->unk_350, 0); Window_Remove(¶m0->unk_350); } @@ -2074,9 +2072,9 @@ static int ov65_0222F90C (UnkStruct_ov65_0222EBE0 * param0, int param1) if (param0->unk_14C) { Window_Remove(¶m0->unk_370); - sub_02001384(param0->unk_150, NULL, NULL); + ListMenu_Free(param0->unk_150, NULL, NULL); param0->unk_150 = NULL; - sub_02013A3C(param0->unk_14C); + StringList_Free(param0->unk_14C); param0->unk_14C = NULL; } @@ -2089,7 +2087,7 @@ static int ov65_0222F90C (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_04 = sub_0203871C(param0->unk_160, sizeof(UnkStruct_0207DFAC)); ov65_02232B58(param0, 23, 1); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); param0->unk_3A8 = 14; } @@ -2135,7 +2133,7 @@ asm static int ov65_0222FAA0 (UnkStruct_ov65_0222EBE0 * param0, int param1) lsl r1, r1, #2 add r0, r5, r1 sub r1, #0xea - bl sub_0200E7FC + bl Window_AddWaitDial mov r1, #0x62 lsl r1, r1, #2 str r0, [r5, r1] @@ -2283,7 +2281,7 @@ static int ov65_0222FCDC (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_3A8 = ov65_0222EBB8(); if (Window_IsInUse(¶m0->unk_360)) { - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); } } @@ -2352,7 +2350,7 @@ static void ov65_0222FD70 (UnkStruct_ov65_0222EBE0 * param0) Window_ScheduleCopyToVRAM(¶m0->unk_340); } -static void ov65_0222FED8 (BmpList * param0, u32 param1, u8 param2) +static void ov65_0222FED8(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); @@ -2366,7 +2364,7 @@ static void ov65_0222FEEC (UnkStruct_ov65_0222EBE0 * param0) } if (Window_IsInUse(¶m0->unk_350)) { - Window_Clear(¶m0->unk_350, 0); + Window_EraseStandardFrame(¶m0->unk_350, 0); Window_Remove(¶m0->unk_350); } @@ -2374,7 +2372,7 @@ static void ov65_0222FEEC (UnkStruct_ov65_0222EBE0 * param0) Window_Add(param0->unk_15C, ¶m0->unk_350, 1, 1, 1, 28, 2, 13, (((512 - (18 + 12)) - 9) - (28 * 2))); Window_FillTilemap(¶m0->unk_350, 15); Window_ScheduleCopyToVRAM(¶m0->unk_350); - Window_Show(¶m0->unk_350, 0, ((512 - (18 + 12)) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_350, 0, ((512 - (18 + 12)) - 9), 11); } static int ov65_0222FFAC (UnkStruct_ov65_0222EBE0 * param0, int param1) @@ -2385,7 +2383,7 @@ static int ov65_0222FFAC (UnkStruct_ov65_0222EBE0 * param0, int param1) UnkStruct_ov65_022354D8 * v4; int v5; - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return param1; } @@ -2409,9 +2407,9 @@ static int ov65_0222FFAC (UnkStruct_ov65_0222EBE0 * param0, int param1) if (param0->unk_14C) { Window_Remove(¶m0->unk_370); - sub_02001384(param0->unk_150, NULL, NULL); + ListMenu_Free(param0->unk_150, NULL, NULL); param0->unk_150 = NULL; - sub_02013A3C(param0->unk_14C); + StringList_Free(param0->unk_14C); param0->unk_14C = NULL; } @@ -2443,7 +2441,7 @@ static int ov65_0222FFAC (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_3D0 = -1; NARC_dtor(v3); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 54); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 54); param0->unk_3A8 = 19; CommMan_SetErrorHandling(0, 0); @@ -2572,7 +2570,7 @@ static int ov65_022302C4 (UnkStruct_ov65_0222EBE0 * param0, int param1) UnkStruct_ov65_022354D8 * v3; u32 v4; - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return param1; } @@ -2896,7 +2894,7 @@ static int ov65_022309D0 (UnkStruct_ov65_0222EBE0 * param0, int param1) if (Text_IsPrinterActive(param0->unk_180) == 0) { sub_0202B13C(param0->unk_00, ov4_021D2388()); - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 26; } @@ -2906,14 +2904,14 @@ static int ov65_022309D0 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_02230A30 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { if ((sub_020380E4() >= 4) || sub_02038284() || !CommSys_IsPlayerConnected(0)) { ov65_02232DFC(param0); ov65_02232E58(param0, 16); - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); param0->unk_3D0 = -1; param0->unk_3BC = 20; param0->unk_3A8 = 65; @@ -3083,7 +3081,7 @@ static int ov65_02230D20 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_022355FC(¶m0->unk_3EC); if (Text_IsPrinterActive(param0->unk_180) == 0) { - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 41; } @@ -3093,7 +3091,7 @@ static int ov65_02230D20 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_02230D6C (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); ov65_022355FC(¶m0->unk_3EC); @@ -3101,7 +3099,7 @@ static int ov65_02230D6C (UnkStruct_ov65_0222EBE0 * param0, int param1) ov4_021D2584(param0->unk_04->unk_00.unk_21); if (v1 == 0xffffffff) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); } v1 = 1; @@ -3170,7 +3168,7 @@ UnkStruct_ov65_02239CDC Unk_ov65_02239C9C[] = { {0x29, (u32)0xfffffffe} }; -static UnkStruct_ov84_02240FA8 Unk_ov65_02239CBC = { +static ListMenuTemplate Unk_ov65_02239CBC = { NULL, ov65_0222FED8, NULL, @@ -3192,7 +3190,7 @@ static UnkStruct_ov84_02240FA8 Unk_ov65_02239CBC = { NULL }; -static const UnkStruct_ov84_02240FA8 Unk_ov65_02238AD0 = { +static const ListMenuTemplate Unk_ov65_02238AD0 = { NULL, ov65_0222FED8, NULL, @@ -3214,7 +3212,7 @@ static const UnkStruct_ov84_02240FA8 Unk_ov65_02238AD0 = { NULL }; -static const UnkStruct_ov84_02240FA8 Unk_ov65_02238AF0 = { +static const ListMenuTemplate Unk_ov65_02238AF0 = { NULL, ov65_0222FED8, NULL, @@ -3239,7 +3237,7 @@ static const UnkStruct_ov84_02240FA8 Unk_ov65_02238AF0 = { static int ov65_02230E04 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0, v1; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; UnkStruct_ov65_02239CDC * v3; v1 = 3; @@ -3248,51 +3246,51 @@ static int ov65_02230E04 (UnkStruct_ov65_0222EBE0 * param0, int param1) if (ov65_0222DCF8(param0) == 1) { v1++; - v2.unk_10++; - v2.unk_12++; + v2.count++; + v2.maxDisplay++; v3[v1 - 1] = Unk_ov65_02239C28; } if (ov65_0222DCE0(param0) == 1) { v1++; - v2.unk_10++; - v2.unk_12++; + v2.count++; + v2.maxDisplay++; v3[v1 - 1] = Unk_ov65_02239C30; } if (ov65_0222DD1C(param0) == 1) { v1++; - v2.unk_10++; - v2.unk_12++; + v2.count++; + v2.maxDisplay++; v3[v1 - 1] = Unk_ov65_02239C38; } { v1++; - v2.unk_10++; - v2.unk_12++; + v2.count++; + v2.maxDisplay++; v3[v1 - 1] = Unk_ov65_02239C20; } - param0->unk_154 = sub_02013A04(v1, 54); + param0->unk_154 = StringList_New(v1, 54); for (v0 = 0; v0 < v1; v0++) { - sub_02013A4C(param0->unk_154, param0->unk_168, v3[v0].unk_00, v3[v0].unk_04); + StringList_AddFromMessageBank(param0->unk_154, param0->unk_168, v3[v0].unk_00, v3[v0].unk_04); } if (Window_IsInUse(¶m0->unk_380)) { - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); } Window_Add(param0->unk_15C, ¶m0->unk_380, 2, 16, 3, 15, v1 * 2, 13, ((((((512 - (18 + 12)) - 9) - 10) - (18 + 12 + 24)) - (27 * 4)) - (11 * 22)) - v1 * 2); - Window_Show(¶m0->unk_380, 1, ((512 - (18 + 12)) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_380, 1, ((512 - (18 + 12)) - 9), 11); - v2.unk_00 = param0->unk_154; - v2.unk_0C = ¶m0->unk_380; + v2.choices = param0->unk_154; + v2.window = ¶m0->unk_380; - param0->unk_158 = sub_0200112C(&v2, 0, param0->unk_3D4, 54); + param0->unk_158 = ListMenu_New(&v2, 0, param0->unk_3D4, 54); Window_ScheduleCopyToVRAM(¶m0->unk_380); ov65_02232B58(param0, 8, 0); @@ -3313,17 +3311,17 @@ static int ov65_02230FBC (UnkStruct_ov65_0222EBE0 * param0, int param1) if (Text_IsPrinterActive(param0->unk_180) != 0) { if (0 != ov65_02230140(param0)) { param0->unk_3A8 = 19; - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, ¶m0->unk_3D4); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, ¶m0->unk_3D4); + StringList_Free(param0->unk_154); ov65_02232DFC(param0); } return param1; } - v0 = sub_02001288(param0->unk_158); + v0 = ListMenu_ProcessInput(param0->unk_158); if (0 != ov65_02230140(param0)) { v0 = 0xfffffffe; @@ -3357,10 +3355,10 @@ static int ov65_02230FBC (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02232B58(param0, 103, 0); param0->unk_3A8 = 29; } else if ((v0 == 0) || (v0 == 1) || (v0 == 29)) { - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, ¶m0->unk_3D4); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, ¶m0->unk_3D4); + StringList_Free(param0->unk_154); ov65_0223128C(param0, v0); param0->unk_3A8 = 38; return param1; @@ -3392,10 +3390,10 @@ static int ov65_02230FBC (UnkStruct_ov65_0222EBE0 * param0, int param1) break; } - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, ¶m0->unk_3D4); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, ¶m0->unk_3D4); + StringList_Free(param0->unk_154); return param1; } @@ -3419,7 +3417,7 @@ static int ov65_02231200 (UnkStruct_ov65_0222EBE0 * param0, int param1) CommMan_SetErrorHandling(0, 1); sub_0203632C(0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 54); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 54); param0->unk_3E4 = 0; @@ -3437,7 +3435,7 @@ static int ov65_02231200 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_0223128C (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0, v1; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; UnkStruct_ov65_02239CDC * v3; switch (param1) { @@ -3461,31 +3459,31 @@ static int ov65_0223128C (UnkStruct_ov65_0222EBE0 * param0, int param1) break; } - param0->unk_154 = sub_02013A04(v1, 54); + param0->unk_154 = StringList_New(v1, 54); for (v0 = 0; v0 < v1; v0++) { if (v3[v0].unk_00 != 71) { - sub_02013A4C(param0->unk_154, param0->unk_168, v3[v0].unk_00, v3[v0].unk_04); + StringList_AddFromMessageBank(param0->unk_154, param0->unk_168, v3[v0].unk_00, v3[v0].unk_04); } else { StringTemplate_SetPlazaMinigameName(param0->unk_164, 0, v0); MessageLoader_GetStrbuf(param0->unk_168, v3[v0].unk_00, param0->unk_170); StringTemplate_Format(param0->unk_164, param0->unk_178, param0->unk_170); - sub_02013A6C(param0->unk_154, param0->unk_178, v3[v0].unk_04); + StringList_AddFromStrbuf(param0->unk_154, param0->unk_178, v3[v0].unk_04); } } if (Window_IsInUse(¶m0->unk_380)) { - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); } Window_Add(param0->unk_15C, ¶m0->unk_380, 2, 16, 9, 15, v1 * 2, 13, ((((((512 - (18 + 12)) - 9) - 10) - (18 + 12 + 24)) - (27 * 4)) - (11 * 22)) - v1 * 2); - Window_Show(¶m0->unk_380, 1, ((512 - (18 + 12)) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_380, 1, ((512 - (18 + 12)) - 9), 11); - v2.unk_00 = param0->unk_154; - v2.unk_0C = ¶m0->unk_380; + v2.choices = param0->unk_154; + v2.window = ¶m0->unk_380; - param0->unk_158 = sub_0200112C(&v2, 0, param0->unk_3D6[param0->unk_3DC], 54); + param0->unk_158 = ListMenu_New(&v2, 0, param0->unk_3D6[param0->unk_3DC], 54); Window_ScheduleCopyToVRAM(¶m0->unk_380); @@ -3500,10 +3498,10 @@ static int ov65_02231440 (UnkStruct_ov65_0222EBE0 * param0, int param1) if (0 != ov65_02230140(param0)) { param0->unk_3A8 = 19; - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, ¶m0->unk_3D6[param0->unk_3DC]); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, ¶m0->unk_3D6[param0->unk_3DC]); + StringList_Free(param0->unk_154); ov65_02232DFC(param0); return param1; } @@ -3512,7 +3510,7 @@ static int ov65_02231440 (UnkStruct_ov65_0222EBE0 * param0, int param1) return param1; } - v0 = sub_02001288(param0->unk_158); + v0 = ListMenu_ProcessInput(param0->unk_158); switch (v0) { case 0xffffffff: @@ -3547,10 +3545,10 @@ static int ov65_02231440 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_0223500C(param0, v1); } - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, ¶m0->unk_3D6[param0->unk_3DC]); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, ¶m0->unk_3D6[param0->unk_3DC]); + StringList_Free(param0->unk_154); return param1; } @@ -3563,7 +3561,7 @@ static const struct { {0x29, (u32)0xfffffffe} }; -static const UnkStruct_ov84_02240FA8 Unk_ov65_02238A90 = { +static const ListMenuTemplate Unk_ov65_02238A90 = { NULL, ov65_0222FED8, NULL, @@ -3687,7 +3685,7 @@ static int ov65_022316F0 (UnkStruct_ov65_0222EBE0 * param0, int param1) if (v0 == NULL) { ov65_0223556C(¶m0->unk_3EC, v0); - sub_02001384(param0->unk_158, NULL, NULL); + ListMenu_Free(param0->unk_158, NULL, NULL); ov65_02232DC0(param0, v2 - 1); ov65_02232B58(param0, 16, 0); param0->unk_3A8 = 29; @@ -3711,7 +3709,7 @@ static int ov65_022316F0 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v5, v6; - UnkStruct_ov84_02240FA8 v7; + ListMenuTemplate v7; u16 v8, v9, v10; UnkStruct_0207E060 * v11; @@ -3725,38 +3723,38 @@ static int ov65_022316F0 (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_3E0 = v10; v10 += param0->unk_04->unk_00.unk_21; - param0->unk_154 = sub_02013A04(v6, 54); + param0->unk_154 = StringList_New(v6, 54); v5 = 0; for (v5 = 0; v5 < NELEMS(Unk_ov65_02238968); v5++) { if (v5 == 0) { if (ov65_0222DE68(v9) || (v9 == 0) || (v9 == 28) || (v9 >= 29)) { - v7.unk_12 -= 1; - v7.unk_10 -= 1; + v7.maxDisplay -= 1; + v7.count -= 1; v6 -= 1; } else if (v9 == 16) { if (v10 == 2) { - sub_02013A4C(param0->unk_154, param0->unk_168, 36, Unk_ov65_02238968[v5].unk_04); + StringList_AddFromMessageBank(param0->unk_154, param0->unk_168, 36, Unk_ov65_02238968[v5].unk_04); } else { - v7.unk_12 -= 1; - v7.unk_10 -= 1; + v7.maxDisplay -= 1; + v7.count -= 1; v6 -= 1; } } else { - sub_02013A4C(param0->unk_154, param0->unk_168, Unk_ov65_02238968[v5].unk_00, Unk_ov65_02238968[v5].unk_04); + StringList_AddFromMessageBank(param0->unk_154, param0->unk_168, Unk_ov65_02238968[v5].unk_00, Unk_ov65_02238968[v5].unk_04); } } else { - sub_02013A4C(param0->unk_154, param0->unk_168, Unk_ov65_02238968[v5].unk_00, Unk_ov65_02238968[v5].unk_04); + StringList_AddFromMessageBank(param0->unk_154, param0->unk_168, Unk_ov65_02238968[v5].unk_00, Unk_ov65_02238968[v5].unk_04); } } Window_Add(param0->unk_15C, ¶m0->unk_380, 2, 16, 11 + ((3 - v6) * 2), 15, v6 * 2, 13, ((((((512 - (18 + 12)) - 9) - 10) - (18 + 12 + 24)) - (27 * 4)) - (11 * 22))); - Window_Show(¶m0->unk_380, 1, ((512 - (18 + 12)) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_380, 1, ((512 - (18 + 12)) - 9), 11); - v7.unk_00 = param0->unk_154; - v7.unk_0C = ¶m0->unk_380; + v7.choices = param0->unk_154; + v7.window = ¶m0->unk_380; - param0->unk_158 = sub_0200112C(&v7, 0, 0, 54); + param0->unk_158 = ListMenu_New(&v7, 0, 0, 54); Window_ScheduleCopyToVRAM(¶m0->unk_380); } @@ -3856,7 +3854,7 @@ static int ov65_02231A98 (UnkStruct_ov65_0222EBE0 * param0, int param1) UnkStruct_ov65_022354D8 * v7; UnkStruct_0207E060 * v8; - v0 = sub_02001288(param0->unk_158); + v0 = ListMenu_ProcessInput(param0->unk_158); v6 = ov65_02230140(param0); if (0 != v6) { @@ -3867,10 +3865,10 @@ static int ov65_02231A98 (UnkStruct_ov65_0222EBE0 * param0, int param1) v7 = ov65_0222E8D4(param0, v2); if (sub_020383E8()) { - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, NULL); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, NULL); + StringList_Free(param0->unk_154); if (v7 != NULL) { ov65_0223556C(¶m0->unk_3EC, v7); @@ -3883,7 +3881,7 @@ static int ov65_02231A98 (UnkStruct_ov65_0222EBE0 * param0, int param1) switch (v0) { case 0xffffffff: if (v7 == NULL) { - sub_02001384(param0->unk_158, NULL, NULL); + ListMenu_Free(param0->unk_158, NULL, NULL); ov65_02232DC0(param0, v2 - 1); ov65_02232B58(param0, 16, 0); param0->unk_3A8 = 29; @@ -3996,7 +3994,7 @@ static int ov65_02231A98 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02232DC0(param0, v2 - 1); ov65_02232B58(param0, 17, 0); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); if (v1 != 1) { param0->unk_3A8 = 45; @@ -4031,10 +4029,10 @@ static int ov65_02231A98 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02232DFC(param0); } - Window_Clear(¶m0->unk_380, 0); + Window_EraseStandardFrame(¶m0->unk_380, 0); Window_Remove(¶m0->unk_380); - sub_02001384(param0->unk_158, NULL, NULL); - sub_02013A3C(param0->unk_154); + ListMenu_Free(param0->unk_158, NULL, NULL); + StringList_Free(param0->unk_154); if (v7 != NULL) { ov65_0223556C(¶m0->unk_3EC, v7); @@ -4088,7 +4086,7 @@ static int ov65_02231E64 (UnkStruct_ov65_0222EBE0 * param0, int param1) param0->unk_3AC = ov65_0222DD94(v0); sub_0203632C(0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 54); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 54); param0->unk_3E4 = 0; param1 = 2; @@ -4386,7 +4384,7 @@ static int ov65_022323C0 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02231A74(param0, ov4_021D2388()); ov65_02232E58(param0, v0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 54); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 54); param1 = 2; } @@ -4445,7 +4443,7 @@ static int ov65_022325AC (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_022325C4 (UnkStruct_ov65_0222EBE0 * param0, int param1) { if (Text_IsPrinterActive(param0->unk_180) == 0) { - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 58; } @@ -4455,7 +4453,7 @@ static int ov65_022325C4 (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_02232608 (UnkStruct_ov65_0222EBE0 * param0, int param1) { int v0; - int v1 = sub_02002114(param0->unk_184, 54); + int v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (Text_IsPrinterActive(param0->unk_180) != 0) { return param1; @@ -4463,7 +4461,7 @@ static int ov65_02232608 (UnkStruct_ov65_0222EBE0 * param0, int param1) if (0 != ov65_02230140(param0)) { if (v1 == 0xffffffff) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); } v1 = 0xfffffffe; @@ -4532,7 +4530,7 @@ static int ov65_02232734 (UnkStruct_ov65_0222EBE0 * param0, int param1) CommMan_SetErrorHandling(0, 1); if (Text_IsPrinterActive(param0->unk_180) == 0) { - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 62; } @@ -4549,21 +4547,21 @@ static int ov65_0223278C (UnkStruct_ov65_0222EBE0 * param0, int param1) } if (sub_02038294() || sub_02038284() || (sub_020380E4() >= 3)) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); ov65_02232B58(param0, 101, 0); param0->unk_3A8 = 28; } else if (sub_020383E8()) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); ov65_0222F6EC(param0); } else { - v1 = sub_02002114(param0->unk_184, 54); + v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; } else if (v1 == 0) { ov65_02232B58(param0, 138, 0); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); param0->unk_3E4 = 1; param0->unk_3A8 = 49; param0->unk_3BC = 30; @@ -4612,7 +4610,7 @@ static int ov65_0223288C (UnkStruct_ov65_0222EBE0 * param0, int param1) } if (Text_IsPrinterActive(param0->unk_180) == 0) { - param0->unk_184 = sub_02002100(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); + param0->unk_184 = Menu_MakeYesNoChoice(param0->unk_15C, &Unk_ov65_0223894C, ((512 - (18 + 12)) - 9), 11, 54); param0->unk_3A8 = 64; } @@ -4633,7 +4631,7 @@ static int ov65_0223294C (UnkStruct_ov65_0222EBE0 * param0, int param1) v5 = ov65_0222E8D4(param0, v3); if (v5 == NULL) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); ov65_02232DC0(param0, v3 - 1); ov65_02232B58(param0, 16, 0); param0->unk_3A8 = 29; @@ -4644,7 +4642,7 @@ static int ov65_0223294C (UnkStruct_ov65_0222EBE0 * param0, int param1) v4 = v6->unk_21; if ((param0->unk_3DE != v2) || (param0->unk_3E0 != v4)) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); ov65_02232DC0(param0, v3 - 1); ov65_02232B58(param0, 16, 0); param0->unk_3A8 = 29; @@ -4654,16 +4652,16 @@ static int ov65_0223294C (UnkStruct_ov65_0222EBE0 * param0, int param1) } if (sub_020380E4() >= 3) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); ov65_02232B58(param0, 18, 0); sub_02038378(); param0->unk_3A8 = 29; return param1; } else if (sub_020383E8()) { - sub_02002154(param0->unk_184, 54); + Menu_DestroyForExit(param0->unk_184, 54); ov65_0222F6EC(param0); } else { - v1 = sub_02002114(param0->unk_184, 54); + v1 = Menu_ProcessInputAndHandleExit(param0->unk_184, 54); if (v1 == 0xffffffff) { return param1; @@ -4686,7 +4684,7 @@ static int ov65_0223294C (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02232B58(param0, 17, 0); GF_ASSERT(param0->unk_188 == NULL); - param0->unk_188 = sub_0200E7FC(¶m0->unk_330, (512 - (18 + 12))); + param0->unk_188 = Window_AddWaitDial(¶m0->unk_330, (512 - (18 + 12))); if (v2 != 1) { param0->unk_3A8 = 45; @@ -4717,7 +4715,7 @@ static int ov65_0223294C (UnkStruct_ov65_0222EBE0 * param0, int param1) static int ov65_02232B28 (UnkStruct_ov65_0222EBE0 * param0, int param1) { if (!CommMan_IsInitialized()) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 54); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 54); param1 = 2; } @@ -4731,12 +4729,12 @@ static void ov65_02232B58 (UnkStruct_ov65_0222EBE0 * param0, int param1, BOOL pa ov65_02232F50(param0); if (Window_IsInUse(¶m0->unk_360)) { - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); } if (Window_IsInUse(¶m0->unk_330)) { - sub_0200E084(¶m0->unk_330, 0); + Window_EraseMessageBox(¶m0->unk_330, 0); Window_Remove(¶m0->unk_330); } @@ -4757,7 +4755,7 @@ static void ov65_02232B58 (UnkStruct_ov65_0222EBE0 * param0, int param1, BOOL pa StringTemplate_Format(param0->unk_164, param0->unk_174, param0->unk_170); Window_FillTilemap(¶m0->unk_330, 15); - sub_0200E060(¶m0->unk_330, 1, (512 - (18 + 12)), 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_330, 1, (512 - (18 + 12)), 10); RenderControlFlags_SetCanABSpeedUpPrint(1); RenderControlFlags_SetAutoScrollFlags(0); @@ -4771,12 +4769,12 @@ static void ov65_02232CA8 (UnkStruct_ov65_0222EBE0 * param0, int param1) ov65_02232F50(param0); if (Window_IsInUse(¶m0->unk_360)) { - sub_0200E084(¶m0->unk_360, 0); + Window_EraseMessageBox(¶m0->unk_360, 0); Window_Remove(¶m0->unk_360); } if (Window_IsInUse(¶m0->unk_330)) { - sub_0200E084(¶m0->unk_330, 0); + Window_EraseMessageBox(¶m0->unk_330, 0); Window_Remove(¶m0->unk_330); } @@ -4792,7 +4790,7 @@ static void ov65_02232CA8 (UnkStruct_ov65_0222EBE0 * param0, int param1) StringTemplate_Format(param0->unk_164, param0->unk_174, param0->unk_170); Window_FillTilemap(¶m0->unk_360, 15); - Window_Show(¶m0->unk_360, 1, ((512 - (18 + 12)) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_360, 1, ((512 - (18 + 12)) - 9), 11); param0->unk_180 = Text_AddPrinterWithParams(¶m0->unk_360, 1, param0->unk_174, 0, 0, 0xff, NULL); Window_ScheduleCopyToVRAM(¶m0->unk_360); @@ -4821,7 +4819,7 @@ static void ov65_02232DFC (UnkStruct_ov65_0222EBE0 * param0) } if (Window_IsInUse(¶m0->unk_330)) { - sub_0200E084(¶m0->unk_330, 0); + Window_EraseMessageBox(¶m0->unk_330, 0); Window_Remove(¶m0->unk_330); } } @@ -4893,12 +4891,12 @@ static BOOL ov65_02232F30 (UnkStruct_ov65_0222EBE0 * param0) static void ov65_02232F50 (UnkStruct_ov65_0222EBE0 * param0) { if (param0->unk_188) { - sub_0200EBC8(param0->unk_188); + DestroyWaitDialTaskOnly(param0->unk_188); param0->unk_188 = NULL; if (Window_IsInUse(¶m0->unk_330)) { - sub_0200E084(¶m0->unk_330, 0); + Window_EraseMessageBox(¶m0->unk_330, 0); Window_Remove(¶m0->unk_330); } } diff --git a/src/overlay065/ov65_0223648C.c b/src/overlay065/ov65_0223648C.c index 5c871683a2..9d7864ed60 100644 --- a/src/overlay065/ov65_0223648C.c +++ b/src/overlay065/ov65_0223648C.c @@ -3,7 +3,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0200C738.h" #include "struct_defs/struct_0207DE04.h" #include "struct_defs/struct_0207DFAC.h" @@ -36,21 +35,21 @@ #include "gx_layers.h" #include "heap.h" #include "journal.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "save_player.h" #include "sprite_resource.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -115,7 +114,7 @@ typedef struct { Window unk_210; Window unk_220; Window unk_230; - UIControlData *unk_240; + Menu *unk_240; void *unk_244; NNSG2dScreenData *unk_248; void *unk_24C; @@ -407,7 +406,7 @@ int ov65_0223648C(OverlayManager *param0, int *param1) MI_CpuFill8(v0->unk_00.unk_1C, 1, sizeof(u8) * 4); MI_CpuFill8(v0->unk_00.unk_20, 1, sizeof(u8) * 4); - sub_0201DBEC(16, 96); + VRAMTransferManager_New(16, 96); v0->unk_00.unk_00 = sub_020388E8(); v0->unk_00.unk_00->unk_00.unk_21 = v0->unk_00.unk_00->unk_00.unk_22; @@ -435,11 +434,11 @@ int ov65_02236548(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(3, 1, 1, 0x0, 6, 1, 96); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 96); (*param1)++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1)++; } break; @@ -477,11 +476,11 @@ int ov65_02236548(OverlayManager *param0, int *param1) } break; case 3: - sub_0200F174(3, 0, 0, 0x0, 6, 1, 96); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 96); (*param1)++; break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } @@ -506,7 +505,7 @@ int ov65_0223668C(OverlayManager *param0, int *param1) ov65_02237504(v0); ov65_022367F8(v0, 96); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); OverlayManager_FreeData(param0); Heap_Destroy(97); Heap_Destroy(96); @@ -748,20 +747,20 @@ static void ov65_02236A28(UnkStruct_ov65_02236840 *param0, const UnkStruct_0207D v0 = Options_Frame(SaveData_Options(param1->unk_08)); - sub_0200DD0C(param0->unk_00, 1, 1, 2, v0, param2); - sub_0200DAA4(param0->unk_00, 1, (1 + (18 + 12)), 3, 0, param2); - sub_0200DAA4(param0->unk_00, 2, (0 + (24 * 2)), 4, 0, param2); + LoadMessageBoxGraphics(param0->unk_00, 1, 1, 2, v0, param2); + LoadStandardWindowGraphics(param0->unk_00, 1, (1 + (18 + 12)), 3, 0, param2); + LoadStandardWindowGraphics(param0->unk_00, 2, (0 + (24 * 2)), 4, 0, param2); Window_Add(param0->unk_00, ¶m0->unk_1F0, 1, 2, 19, 27, 4, 1, ((1 + (18 + 12)) + 9)); Window_FillTilemap(¶m0->unk_1F0, 15); - sub_0200E060(¶m0->unk_1F0, 1, 1, 2); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1F0, 1, 1, 2); Window_Add(param0->unk_00, ¶m0->unk_200, 1, 1, 1, 27, 2, 1, (((1 + (18 + 12)) + 9) + (27 * 4))); Window_FillTilemap(¶m0->unk_200, 15); - Window_Show(¶m0->unk_200, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(¶m0->unk_200, 1, (1 + (18 + 12)), 3); Window_Add(param0->unk_00, ¶m0->unk_210, 1, 2, 16, 28, 2, 1, ((((1 + (18 + 12)) + 9) + (27 * 4)) + (27 * 2))); Window_FillTilemap(¶m0->unk_210, 0); Window_Add(param0->unk_00, ¶m0->unk_220, 1, 1, 5, 20, 8, 1, (((((1 + (18 + 12)) + 9) + (27 * 4)) + (27 * 2)) + (28 * 2))); Window_FillTilemap(¶m0->unk_220, 15); - Window_Show(¶m0->unk_220, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(¶m0->unk_220, 1, (1 + (18 + 12)), 3); Window_Add(param0->unk_00, ¶m0->unk_230, 1, 23, 5, 7, 5, 1, ((((((1 + (18 + 12)) + 9) + (27 * 4)) + (27 * 2)) + (28 * 2)) + (20 * 8))); Window_FillTilemap(¶m0->unk_230, 15); } @@ -770,18 +769,18 @@ static void ov65_02236B90(UnkStruct_ov65_02236840 *param0, u32 param1) { ov65_02236F38(param0); - sub_0200E084(¶m0->unk_1F0, 0); + Window_EraseMessageBox(¶m0->unk_1F0, 0); Window_Remove(¶m0->unk_1F0); - Window_Clear(¶m0->unk_200, 0); + Window_EraseStandardFrame(¶m0->unk_200, 0); Window_Remove(¶m0->unk_200); Window_Remove(¶m0->unk_210); - Window_Clear(¶m0->unk_220, 0); + Window_EraseStandardFrame(¶m0->unk_220, 0); Window_Remove(¶m0->unk_220); - Window_Clear(¶m0->unk_230, 0); + Window_EraseStandardFrame(¶m0->unk_230, 0); Window_Remove(¶m0->unk_230); if (param0->unk_240 != NULL) { - sub_02002154(param0->unk_240, param1); + Menu_DestroyForExit(param0->unk_240, param1); } } @@ -910,7 +909,7 @@ static void ov65_02236E50(UnkStruct_ov65_02236840 *param0, const UnkStruct_0207D v1 = Options_Frame(SaveData_Options(param1->unk_08)); - sub_0200DD0C(param0->unk_00, 1, 1, 2, v1, param4); + LoadMessageBoxGraphics(param0->unk_00, 1, 1, 2, v1, param4); param0->unk_15 = param3; } @@ -969,7 +968,7 @@ static void ov65_02236F70(UnkStruct_ov65_02236840 *param0, const UnkStruct_0207D Window_FillTilemap(¶m0->unk_230, 15); Text_AddPrinterWithParamsAndColor(¶m0->unk_230, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); - Window_Show(¶m0->unk_230, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(¶m0->unk_230, 1, (1 + (18 + 12)), 3); Window_ScheduleCopyToVRAM(¶m0->unk_230); Strbuf_Free(v0); @@ -978,7 +977,7 @@ static void ov65_02236F70(UnkStruct_ov65_02236840 *param0, const UnkStruct_0207D static void ov65_02237018(UnkStruct_ov65_02236840 *param0) { - Window_Clear(¶m0->unk_230, 1); + Window_EraseStandardFrame(¶m0->unk_230, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_230); } @@ -1494,7 +1493,7 @@ static void ov65_02237860(UnkStruct_ov65_022367A8 *param0, u32 param1) static void ov65_0223789C(UnkStruct_ov65_022367A8 *param0) { GF_ASSERT(param0->unk_30.unk_24C == NULL); - param0->unk_30.unk_24C = sub_0200E7FC(¶m0->unk_30.unk_1F0, 1); + param0->unk_30.unk_24C = Window_AddWaitDial(¶m0->unk_30.unk_1F0, 1); } static void ov65_022378C4(UnkStruct_ov65_022367A8 *param0, const UnkStruct_0207DE04 *param1, u32 param2) @@ -1505,12 +1504,12 @@ static void ov65_022378C4(UnkStruct_ov65_022367A8 *param0, const UnkStruct_0207D return; } - DeleteWaitDial(param0->unk_30.unk_24C); + DestroyWaitDial(param0->unk_30.unk_24C); param0->unk_30.unk_24C = NULL; v0 = Options_Frame(SaveData_Options(param1->unk_08)); - sub_0200DD0C(param0->unk_30.unk_00, 1, 1, 2, v0, param2); + LoadMessageBoxGraphics(param0->unk_30.unk_00, 1, 1, 2, v0, param2); } static void ov65_02237908(UnkStruct_ov65_022367A8 *param0, UnkStruct_ov65_02237908 *param1) @@ -1752,7 +1751,7 @@ static BOOL ov65_02237BC4(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002100(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoice(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); param0->unk_00.unk_05 = 5; return 0; @@ -1764,7 +1763,7 @@ static BOOL ov65_02237BF8(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p UnkStruct_ov65_022366E4 v1; BOOL v2; - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { v1.unk_00 = param0->unk_00.unk_06; @@ -1843,7 +1842,7 @@ static BOOL ov65_02237CE4(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002100(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoice(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); param0->unk_00.unk_05 = 10; return 0; @@ -1853,7 +1852,7 @@ static BOOL ov65_02237D18(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p { int v0; - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -2031,7 +2030,7 @@ static BOOL ov65_02237F08(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002054(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, 1, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, 1, param2); param0->unk_00.unk_05 = 21; return 0; @@ -2041,7 +2040,7 @@ static BOOL ov65_02237F48(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p { int v0; - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -2082,7 +2081,7 @@ static BOOL ov65_02237FB8(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002054(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, 1, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, 1, param2); param0->unk_00.unk_05 = 24; return 0; @@ -2092,7 +2091,7 @@ static BOOL ov65_02237FF8(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p { int v0; - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -2154,7 +2153,7 @@ static BOOL ov65_0223806C(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p static BOOL ov65_022380AC(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *param1, u32 param2) { if (param0->unk_30.unk_240 != NULL) { - sub_02002154(param0->unk_30.unk_240, param2); + Menu_DestroyForExit(param0->unk_30.unk_240, param2); param0->unk_30.unk_240 = NULL; } @@ -2219,7 +2218,7 @@ static BOOL ov65_0223815C(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002100(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoice(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); param0->unk_00.unk_05 = 32; return 0; @@ -2229,7 +2228,7 @@ static BOOL ov65_02238190(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p { int v0; - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -2528,7 +2527,7 @@ static BOOL ov65_02238528(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p static BOOL ov65_02238558(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *param1, u32 param2) { if (param0->unk_30.unk_240 != NULL) { - sub_02002154(param0->unk_30.unk_240, param2); + Menu_DestroyForExit(param0->unk_30.unk_240, param2); param0->unk_30.unk_240 = NULL; } @@ -2605,7 +2604,7 @@ static BOOL ov65_02238608(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002100(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoice(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); param0->unk_00.unk_05 = 20; return 0; @@ -2620,12 +2619,12 @@ static BOOL ov65_02238660(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p if (ov65_02237A10(param0) == 1) { param0->unk_00.unk_05 = 10; ov65_02236F38(¶m0->unk_30); - sub_02002154(param0->unk_30.unk_240, param2); + Menu_DestroyForExit(param0->unk_30.unk_240, param2); param0->unk_30.unk_240 = NULL; return 0; } - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -2667,7 +2666,7 @@ static BOOL ov65_02238728(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p return 0; } - param0->unk_30.unk_240 = sub_02002100(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); + param0->unk_30.unk_240 = Menu_MakeYesNoChoice(param0->unk_30.unk_00, &Unk_ov65_02239A24, (0 + (24 * 2)), 4, param2); param0->unk_00.unk_05 = 23; return 0; @@ -2677,7 +2676,7 @@ static BOOL ov65_0223875C(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p { int v0; - v0 = sub_02002114(param0->unk_30.unk_240, param2); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_30.unk_240, param2); if (v0 != 0xffffffff) { if (v0 == 0) { @@ -2732,7 +2731,7 @@ static BOOL ov65_022387E8(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p if ((sub_020380E4() == 1) && (CommSys_IsPlayerConnected(0) == 1)) { sub_0203632C(0); ov65_022378C4(param0, param1, param2); - sub_0200F174(3, 0, 0, 0x0, 6, 1, param2); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, param2); param0->unk_00.unk_05 = 27; } @@ -2741,7 +2740,7 @@ static BOOL ov65_022387E8(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p static BOOL ov65_02238838(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *param1, u32 param2) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { CommInfo_Init(param1->unk_08, NULL); param0->unk_00.unk_27 = 1; @@ -2773,7 +2772,7 @@ static BOOL ov65_02238838(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p memset(param0->unk_00.unk_28, 0, sizeof(u8) * 4); } - sub_0200F174(3, 1, 1, 0x0, 6, 1, param2); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, param2); param0->unk_00.unk_05 = 28; } @@ -2783,7 +2782,7 @@ static BOOL ov65_02238838(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *p static BOOL ov65_022388FC(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *param1, u32 param2) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00.unk_05 = 0; } diff --git a/src/overlay066/ov66_0222DDF0.c b/src/overlay066/ov66_0222DDF0.c index bd5053bcc5..0e2a15ff4e 100644 --- a/src/overlay066/ov66_0222DDF0.c +++ b/src/overlay066/ov66_0222DDF0.c @@ -2360,7 +2360,7 @@ static void ov66_0222F7C8(UnkStruct_ov66_0222F6C4 *param0, SaveData *param1, u32 param0->unk_20.unk_3A = ov66_02230C0C(param0->unk_20.unk_3A); param0->unk_20.unk_3C = sub_0202C8C0(v2); param0->unk_20.unk_3E = sub_0202C8C4(v2); - param0->unk_20.unk_3F = Pokedex_IsNationalUnlocked(v3); + param0->unk_20.unk_3F = Pokedex_IsNationalDexObtained(v3); param0->unk_20.unk_40 = TrainerInfo_IsMainStoryCleared(v0); param0->unk_20.unk_41 = 0xff; param0->unk_20.unk_43 = 0; diff --git a/src/overlay067/ov67_0225C700.c b/src/overlay067/ov67_0225C700.c index 26881b9378..f089937aa3 100644 --- a/src/overlay067/ov67_0225C700.c +++ b/src/overlay067/ov67_0225C700.c @@ -5,7 +5,6 @@ #include "consts/game_records.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_02099F80.h" #include "overlay061/struct_ov61_0222C3B0.h" @@ -26,18 +25,18 @@ #include "gx_layers.h" #include "heap.h" #include "inlines.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "rtc.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_020366A0.h" @@ -64,7 +63,7 @@ typedef struct { UnkStruct_ov67_0225D210 unk_40; UnkStruct_ov67_0225D210 unk_70; UnkStruct_ov67_0225D210 unk_A0; - UIControlData *unk_D0; + Menu *unk_D0; UnkStruct_ov61_0222C3B0 unk_D4; } UnkStruct_ov67_0225D154; @@ -203,18 +202,18 @@ int ov67_0225C820(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(0, 1, 1, 0xffff, 6, 1, 112); + StartScreenTransition(0, 1, 1, 0xffff, 6, 1, 112); (*param1)++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1)++; } break; case 2: if (v1->unk_08 == 0) { ov67_0225D210(&v0->unk_70, 17); - v0->unk_D0 = sub_02002100(v0->unk_0C, &Unk_ov67_0225D3EC, (1 + (18 + 12)), 14, 112); + v0->unk_D0 = Menu_MakeYesNoChoice(v0->unk_0C, &Unk_ov67_0225D3EC, (1 + (18 + 12)), 14, 112); (*param1)++; } else { (*param1) = 4; @@ -222,7 +221,7 @@ int ov67_0225C820(OverlayManager *param0, int *param1) break; case 3: { u32 v2; - v2 = sub_02002114(v0->unk_D0, 112); + v2 = Menu_ProcessInputAndHandleExit(v0->unk_D0, 112); switch (v2) { case 0: @@ -325,12 +324,12 @@ int ov67_0225C820(OverlayManager *param0, int *param1) case 11: ov67_0225D294(&v0->unk_A0); ov67_0225D210(&v0->unk_40, 88); - v0->unk_D0 = sub_02002100(v0->unk_0C, &Unk_ov67_0225D3EC, (1 + (18 + 12)), 14, 112); + v0->unk_D0 = Menu_MakeYesNoChoice(v0->unk_0C, &Unk_ov67_0225D3EC, (1 + (18 + 12)), 14, 112); (*param1)++; break; case 12: { u32 v11; - v11 = sub_02002114(v0->unk_D0, 112); + v11 = Menu_ProcessInputAndHandleExit(v0->unk_D0, 112); switch (v11) { case 0: @@ -362,11 +361,11 @@ int ov67_0225C820(OverlayManager *param0, int *param1) } break; case 7: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 112); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 112); (*param1)++; break; case 8: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -441,11 +440,11 @@ int ov67_0225CC6C(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(0, 1, 1, 0xffff, 6, 1, 112); + StartScreenTransition(0, 1, 1, 0xffff, 6, 1, 112); (*param1)++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1) = 2; } break; @@ -501,11 +500,11 @@ int ov67_0225CC6C(OverlayManager *param0, int *param1) } break; case 9: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 112); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 112); (*param1)++; break; case 10: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov67_0225D310(&v0->unk_40); return 1; } @@ -582,8 +581,8 @@ static void ov67_0225CE30(UnkStruct_ov67_0225D154 *param0, u32 param1) Font_LoadTextPalette(0, 12 * 32, param1); Font_LoadScreenIndicatorsPalette(0, 11 * 32, param1); - sub_0200DAA4(param0->unk_0C, Unk_ov67_0225D3F4[1], (1 + (18 + 12)), 14, 0, param1); - sub_0200DD0C(param0->unk_0C, Unk_ov67_0225D3F4[1], 1, 13, v2, param1); + LoadStandardWindowGraphics(param0->unk_0C, Unk_ov67_0225D3F4[1], (1 + (18 + 12)), 14, 0, param1); + LoadMessageBoxGraphics(param0->unk_0C, Unk_ov67_0225D3F4[1], 1, 13, v2, param1); } { @@ -651,9 +650,9 @@ static void ov67_0225D210(UnkStruct_ov67_0225D210 *param0, u32 param1) Text_AddPrinterWithParams(¶m0->unk_08, FONT_MESSAGE, param0->unk_18, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); if (param0->unk_20 == 0) { - Window_Show(¶m0->unk_08, 1, (1 + (18 + 12)), 14); + Window_DrawStandardFrame(¶m0->unk_08, 1, (1 + (18 + 12)), 14); } else { - sub_0200E060(¶m0->unk_08, 1, 1, 13); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_08, 1, 1, 13); } Window_ScheduleCopyToVRAM(¶m0->unk_08); @@ -666,14 +665,14 @@ static void ov67_0225D294(UnkStruct_ov67_0225D210 *param0) } if (param0->unk_20 == 0) { - Window_Clear(¶m0->unk_08, 1); + Window_EraseStandardFrame(¶m0->unk_08, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_08); } else { if (param0->unk_24) { ov67_0225D310(param0); } - sub_0200E084(¶m0->unk_08, 1); + Window_EraseMessageBox(¶m0->unk_08, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_08); } } @@ -682,7 +681,7 @@ static void ov67_0225D2EC(UnkStruct_ov67_0225D210 *param0) { if (param0->unk_20 == 1) { GF_ASSERT(param0->unk_24 == NULL); - param0->unk_24 = sub_0200E7FC(¶m0->unk_08, 1); + param0->unk_24 = Window_AddWaitDial(¶m0->unk_08, 1); } } @@ -690,7 +689,7 @@ static void ov67_0225D310(UnkStruct_ov67_0225D210 *param0) { if (param0->unk_20 == 1) { GF_ASSERT(param0->unk_24 != NULL); - DeleteWaitDial(param0->unk_24); + DestroyWaitDial(param0->unk_24); param0->unk_24 = NULL; } } diff --git a/src/overlay068/ov68_0225C700.c b/src/overlay068/ov68_0225C700.c index f688c9d375..5424d6254d 100644 --- a/src/overlay068/ov68_0225C700.c +++ b/src/overlay068/ov68_0225C700.c @@ -5,7 +5,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02030EC4_decl.h" #include "struct_defs/struct_0200C738.h" #include "struct_defs/struct_02099F80.h" @@ -28,9 +27,11 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" @@ -38,12 +39,10 @@ #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -97,7 +96,7 @@ typedef struct { Window unk_08; Strbuf *unk_18; void *unk_1C; - UIControlData *unk_20; + Menu *unk_20; } UnkStruct_ov68_0225D128; typedef struct { @@ -354,19 +353,19 @@ int ov68_0225C798(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 122); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 122); ov66_0222E31C(v1->unk_04, 1); (*param1)++; break; case 1: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { (*param1)++; } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if (ov66_0222E12C(v1->unk_04) == 1) { ov66_0222E2A4(v1->unk_04); (*param1)++; @@ -386,11 +385,11 @@ int ov68_0225C798(OverlayManager *param0, int *param1) } break; case 3: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 122); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 122); (*param1)++; break; case 4: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { ov68_0225D2A0(&v0->unk_2CC); @@ -440,7 +439,7 @@ static void ov68_0225C91C(UnkStruct_ov68_0225C91C *param0, SaveData *param1, u32 v0 = SaveData_Options(param1); param0->unk_1A4 = NARC_ctor(NARC_INDEX_GRAPHIC__WIFI_LOBBY_OTHER, param2); - sub_0201DBEC(32, param2); + VRAMTransferManager_New(32, param2); GXLayers_SetBanks(&Unk_ov68_0225DDC0); ov68_0225C9A0(param0, v0, param2); ov68_0225CAB4(param0, param2); @@ -449,7 +448,7 @@ static void ov68_0225C91C(UnkStruct_ov68_0225C91C *param0, SaveData *param1, u32 static void ov68_0225C960(UnkStruct_ov68_0225C91C *param0) { NARC_dtor(param0->unk_1A4); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov68_0225CA8C(param0); ov68_0225CB44(param0); @@ -490,10 +489,10 @@ static void ov68_0225C9A0(UnkStruct_ov68_0225C91C *param0, Options *param1, u32 { u8 v1 = Options_Frame(param1); - sub_0200DD0C(param0->unk_00, 1, 1, 5, v1, param2); + LoadMessageBoxGraphics(param0->unk_00, 1, 1, 5, v1, param2); } - sub_0200DAA4(param0->unk_00, 1, (1 + (18 + 12)), 6, 0, param2); + LoadStandardWindowGraphics(param0->unk_00, 1, (1 + (18 + 12)), 6, 0, param2); { Graphics_LoadTilesToBgLayer(169, 2, param0->unk_00, 4, 0, 0, 0, param2); @@ -937,7 +936,7 @@ static void ov68_0225D1B4(UnkStruct_ov68_0225D128 *param0, const Strbuf *param1) Window_FillTilemap(¶m0->unk_08, 15); Strbuf_Copy(param0->unk_18, param1); param0->unk_00 = Text_AddPrinterWithParamsAndColor(¶m0->unk_08, FONT_MESSAGE, param0->unk_18, 0, 0, param0->unk_04, TEXT_COLOR(1, 2, 15), NULL); - sub_0200E060(¶m0->unk_08, 1, 1, 5); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_08, 1, 1, 5); } static void ov68_0225D218(UnkStruct_ov68_0225D128 *param0, const Strbuf *param1) @@ -949,20 +948,20 @@ static void ov68_0225D218(UnkStruct_ov68_0225D128 *param0, const Strbuf *param1) Window_FillTilemap(¶m0->unk_08, 15); Strbuf_Copy(param0->unk_18, param1); Text_AddPrinterWithParamsAndColor(¶m0->unk_08, FONT_MESSAGE, param0->unk_18, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); - sub_0200E060(¶m0->unk_08, 1, 1, 5); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_08, 1, 1, 5); Window_ScheduleCopyToVRAM(¶m0->unk_08); } static void ov68_0225D284(UnkStruct_ov68_0225D128 *param0) { GF_ASSERT(param0->unk_1C == NULL); - param0->unk_1C = sub_0200E7FC(¶m0->unk_08, 1); + param0->unk_1C = Window_AddWaitDial(¶m0->unk_08, 1); } static void ov68_0225D2A0(UnkStruct_ov68_0225D128 *param0) { if (param0->unk_1C != NULL) { - DeleteWaitDial(param0->unk_1C); + DestroyWaitDial(param0->unk_1C); param0->unk_1C = NULL; } } @@ -984,21 +983,21 @@ static void ov68_0225D2CC(UnkStruct_ov68_0225D128 *param0) ov68_0225D2A0(param0); - sub_0200E084(¶m0->unk_08, 1); + Window_EraseMessageBox(¶m0->unk_08, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_08); } static void ov68_0225D304(UnkStruct_ov68_0225D128 *param0, UnkStruct_ov68_0225C91C *param1, u32 param2) { GF_ASSERT(param0->unk_20 == NULL); - param0->unk_20 = sub_02002100(param1->unk_00, &Unk_ov68_0225DD38, (1 + (18 + 12)), 6, param2); + param0->unk_20 = Menu_MakeYesNoChoice(param1->unk_00, &Unk_ov68_0225DD38, (1 + (18 + 12)), 6, param2); } static u32 ov68_0225D330(UnkStruct_ov68_0225D128 *param0, u32 param1) { u32 v0; - v0 = sub_02002114(param0->unk_20, param1); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_20, param1); if (v0 != 0xffffffff) { param0->unk_20 = NULL; @@ -1010,7 +1009,7 @@ static u32 ov68_0225D330(UnkStruct_ov68_0225D128 *param0, u32 param1) static void ov68_0225D348(UnkStruct_ov68_0225D128 *param0, u32 param1) { if (param0->unk_20 != NULL) { - sub_02002154(param0->unk_20, param1); + Menu_DestroyForExit(param0->unk_20, param1); param0->unk_20 = NULL; } } @@ -1168,21 +1167,21 @@ static BOOL ov68_0225D478(UnkStruct_ov68_0225D388 *param0, UnkStruct_ov68_0225CB } } break; case 9: - sub_0200F174(0, 0, 0, 0x0, 6, 1, param5); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param5); param0->unk_60 = 10; break; case 10: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov68_0225DB3C(param0, param1, param2, param5); param0->unk_60 = 11; } break; case 11: - sub_0200F174(0, 1, 1, 0x0, 6, 1, param5); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param5); param0->unk_60 = 12; break; case 12: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_60 = 13; } break; diff --git a/src/overlay069/ov69_0225C700.c b/src/overlay069/ov69_0225C700.c index 585a9aa062..0634ba4480 100644 --- a/src/overlay069/ov69_0225C700.c +++ b/src/overlay069/ov69_0225C700.c @@ -33,6 +33,7 @@ #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" @@ -45,7 +46,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015920.h" #include "unk_02017728.h" @@ -722,12 +722,12 @@ int ov69_0225C820(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 105); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 105); ov66_0222E31C(v1->unk_0C, 1); (*param1)++; break; case 1: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { (*param1)++; @@ -751,11 +751,11 @@ int ov69_0225C820(OverlayManager *param0, int *param1) } break; case 5: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 105); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 105); (*param1)++; break; case 6: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { return 1; @@ -1374,7 +1374,7 @@ static void ov69_0225D318(UnkStruct_ov69_0225D35C *param0, Options *param1, u32 { param0->unk_1A8 = NARC_ctor(NARC_INDEX_GRAPHIC__WORLDTIMER, param2); - sub_0201DBEC(64, param2); + VRAMTransferManager_New(64, param2); GXLayers_SetBanks(&Unk_ov69_0225F0C0); ov69_0225D3A4(param0, param1, param2); @@ -1385,7 +1385,7 @@ static void ov69_0225D318(UnkStruct_ov69_0225D35C *param0, Options *param1, u32 static void ov69_0225D35C(UnkStruct_ov69_0225D35C *param0) { NARC_dtor(param0->unk_1A8); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov69_0225D504(param0); ov69_0225D5D8(param0); @@ -1437,14 +1437,14 @@ static void ov69_0225D3A4(UnkStruct_ov69_0225D35C *param0, Options *param1, u32 Font_LoadScreenIndicatorsPalette(0, 1 * 0x20, param2); Font_LoadScreenIndicatorsPalette(4, 11 * 0x20, param2); - sub_0200DAA4(param0->unk_00, 1, (1 + (18 + 12)), 0, 0, param2); - sub_0200DAA4(param0->unk_00, 1, (1 + (18 + 12)), 0, 0, param2); + LoadStandardWindowGraphics(param0->unk_00, 1, (1 + (18 + 12)), 0, 0, param2); + LoadStandardWindowGraphics(param0->unk_00, 1, (1 + (18 + 12)), 0, 0, param2); { u8 v1 = Options_Frame(param1); - sub_0200DD0C(param0->unk_00, 4, 10, 10, v1, param2); - sub_0200DD0C(param0->unk_00, 1, 1, 2, v1, param2); + LoadMessageBoxGraphics(param0->unk_00, 4, 10, 10, v1, param2); + LoadMessageBoxGraphics(param0->unk_00, 1, 1, 2, v1, param2); } Bg_MaskPalette(0, 0x72ca); @@ -1843,7 +1843,7 @@ static void ov69_0225DBB4(UnkStruct_ov69_0225DC48 *param0, UnkStruct_ov69_0225D3 Font_Free(FONT_SUBSCREEN); } - Window_Show(¶m0->unk_1C, 0, (1 + (18 + 12)), 0); + Window_DrawStandardFrame(¶m0->unk_1C, 0, (1 + (18 + 12)), 0); } static void ov69_0225DC48(UnkStruct_ov69_0225DC48 *param0) @@ -1926,14 +1926,14 @@ static int ov69_0225DD10(const UnkStruct_ov69_0225DC48 *param0, u32 param1) static void ov69_0225DD2C(UnkStruct_ov69_0225DC48 *param0) { - Window_Clear(¶m0->unk_1C, 1); + Window_EraseStandardFrame(¶m0->unk_1C, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_1C); } static void ov69_0225DD44(UnkStruct_ov69_0225DC48 *param0) { Window_ScheduleCopyToVRAM(¶m0->unk_1C); - Window_Show(¶m0->unk_1C, 0, (1 + (18 + 12)), 0); + Window_DrawStandardFrame(¶m0->unk_1C, 0, (1 + (18 + 12)), 0); } static void ov69_0225DD60(UnkStruct_ov69_0225DDC8 *param0, UnkStruct_ov69_0225D35C *param1, UnkStruct_ov69_0225EF54 *param2, SaveData *param3, u32 param4) @@ -1971,7 +1971,7 @@ static void ov69_0225DDC8(UnkStruct_ov69_0225DDC8 *param0) static void ov69_0225DDFC(UnkStruct_ov69_0225DDC8 *param0) { Window_FillTilemap(¶m0->unk_10, 15); - sub_0200E060(¶m0->unk_10, 1, 1, 2); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_10, 1, 1, 2); Window_ScheduleCopyToVRAM(¶m0->unk_10); param0->unk_04 = Text_AddPrinterWithParams(¶m0->unk_10, FONT_MESSAGE, param0->unk_0C, 0, 0, param0->unk_08, NULL); @@ -2006,7 +2006,7 @@ static u32 ov69_0225DE40(UnkStruct_ov69_0225DDC8 *param0) static void ov69_0225DEA0(UnkStruct_ov69_0225DDC8 *param0) { sub_02015A54(param0->unk_20); - sub_0200E084(¶m0->unk_10, 1); + Window_EraseMessageBox(¶m0->unk_10, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_10); } @@ -2033,7 +2033,7 @@ static void ov69_0225DEC0(UnkStruct_ov69_0225E084 *param0, UnkStruct_ov69_0225D3 v1 = ov69_0225EF74(param2, 0); Text_AddPrinterWithParams(¶m0->unk_1A8, FONT_MESSAGE, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); - sub_0200E060(¶m0->unk_1A8, 0, 10, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1A8, 0, 10, 10); } ov69_0225E590(param0, param1, param3); @@ -2102,14 +2102,14 @@ static void ov69_0225E00C(UnkStruct_ov69_0225E084 *param0, UnkStruct_ov69_0225EF static void ov69_0225E084(UnkStruct_ov69_0225E084 *param0) { - sub_0200E084(¶m0->unk_1A8, 1); + Window_EraseMessageBox(¶m0->unk_1A8, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_1A8); } static void ov69_0225E0A0(UnkStruct_ov69_0225E084 *param0) { Window_ScheduleCopyToVRAM(¶m0->unk_1A8); - sub_0200E060(¶m0->unk_1A8, 1, 10, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1A8, 1, 10, 10); } static BOOL ov69_0225E0C0(UnkStruct_ov69_0225E084 *param0, const UnkStruct_ov69_0225E0C0 *param1) @@ -2666,7 +2666,7 @@ static void ov69_0225EAE8(UnkStruct_ov69_0225EB60 *param0, UnkStruct_ov69_0225D3 { int v0, v1; - sub_020057A4(1473, 0); + Sound_StopEffect(1473, 0); for (v0 = 0; v0 < 12; v0++) { CellActor_Delete(param0->unk_3C[v0]); @@ -2749,7 +2749,7 @@ static void ov69_0225EC08(UnkStruct_ov69_0225EB60 *param0, UnkStruct_ov69_0225E4 param0->unk_30--; ov69_0225EC70(param0, param0->unk_30, param1); } else { - sub_020057A4(1473, 0); + Sound_StopEffect(1473, 0); param0->unk_30 = 2; param0->unk_32 = 128; } diff --git a/src/overlay070/ov70_0225D9A4.c b/src/overlay070/ov70_0225D9A4.c index e6ec6e3942..2eb500b726 100644 --- a/src/overlay070/ov70_0225D9A4.c +++ b/src/overlay070/ov70_0225D9A4.c @@ -4,11 +4,8 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02023FCC_decl.h" #include "struct_defs/struct_0200C738.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0207C690.h" #include "struct_defs/struct_02099F80.h" @@ -38,7 +35,6 @@ #include "overlay070/struct_ov70_02263910.h" #include "overlay070/struct_ov70_02269204_decl.h" #include "overlay070/struct_ov70_0226C6F8_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "cell_actor.h" @@ -50,29 +46,29 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "touch_screen.h" #include "trainer_info.h" -#include "unk_0200112C.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0201E86C.h" @@ -117,10 +113,10 @@ typedef struct { } UnkStruct_ov70_0225E9C8; typedef struct { - UnkStruct_ov84_02240FA8 unk_00; + ListMenuTemplate unk_00; Window unk_20; - BmpList *unk_30; - ResourceMetadata *unk_34; + ListMenu *unk_30; + StringList *unk_34; u16 unk_38; u16 unk_3A; BOOL unk_3C; @@ -129,8 +125,8 @@ typedef struct { } UnkStruct_ov70_0225EC20; typedef struct { - ResourceMetadata *unk_00; - UnkStruct_ov84_02240FA8 unk_04; + StringList *unk_00; + ListMenuTemplate unk_04; } UnkStruct_ov70_0225F098; typedef struct { @@ -259,12 +255,12 @@ static void ov70_0225ED4C(UnkStruct_ov70_0225EC20 *param0, UnkStruct_ov70_0225E4 static void ov70_0225EDA8(UnkStruct_ov70_0225EC20 *param0, u32 param1, u32 param2, u32 param3); static void ov70_0225EDE0(UnkStruct_ov70_0225EC20 *param0); static void ov70_0225EDF8(UnkStruct_ov70_0225EC20 *param0, const Strbuf *param1, u32 param2); -static const ResourceMetadata *ov70_0225EE04(const UnkStruct_ov70_0225EC20 *param0); +static const StringList *ov70_0225EE04(const UnkStruct_ov70_0225EC20 *param0); static BOOL ov70_0225EE08(const UnkStruct_ov70_0225EC20 *param0, u32 param1); -static void ov70_0225EE30(UnkStruct_ov70_0225EC20 *param0, const UnkStruct_ov84_02240FA8 *param1, UnkStruct_ov70_0225E4EC *param2, u16 param3, u16 param4, u32 param5, u8 param6, u8 param7, u8 param8); +static void ov70_0225EE30(UnkStruct_ov70_0225EC20 *param0, const ListMenuTemplate *param1, UnkStruct_ov70_0225E4EC *param2, u16 param3, u16 param4, u32 param5, u8 param6, u8 param7, u8 param8); static u32 ov70_0225EED8(UnkStruct_ov70_0225EC20 *param0); static void ov70_0225EF14(UnkStruct_ov70_0225EC20 *param0, u16 *param1, u16 *param2); -static void ov70_0225EF58(BmpList *param0, u32 param1, u8 param2); +static void ov70_0225EF58(ListMenu *param0, u32 param1, u8 param2); static void ov70_0225EF6C(UnkStruct_ov70_0225EC20 *param0, BOOL param1); static void ov70_0225EF70(UnkStruct_ov70_0225EC20 *param0); static void ov70_0225EFD4(UnkStruct_ov70_0225EFD4 *param0, UnkStruct_ov70_0225E4EC *param1, u32 param2); @@ -566,7 +562,7 @@ static const UnkStruct_ov22_022559F8 Unk_ov70_0226D5DC = { 0x70, }; -static const UnkStruct_ov84_02240FA8 Unk_ov70_0226D644 = { +static const ListMenuTemplate Unk_ov70_0226D644 = { NULL, NULL, NULL, @@ -669,12 +665,12 @@ int ov70_0225DB90(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 112); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 112); v0->unk_03 = 1; (*param1)++; break; case 1: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { v0->unk_03 = 0; @@ -749,21 +745,21 @@ int ov70_0225DB90(OverlayManager *param0, int *param1) v3 = ov70_0225F798(&v0->unk_1E8); if (v3 == 5) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 112); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 112); v0->unk_03 = 1; (*param1)++; break; } if (v3 == 0) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 112); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 112); v0->unk_03 = 1; (*param1)++; break; } } break; case 8: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { v0->unk_03 = 0; @@ -976,7 +972,7 @@ void ov70_0225E044(UnkStruct_ov70_0225DEE8 *param0, const Strbuf *param1, u32 pa ov70_0225EDF8(¶m0->unk_39C, param1, param2); } -const ResourceMetadata *ov70_0225E054(const UnkStruct_ov70_0225DEE8 *param0) +const StringList *ov70_0225E054(const UnkStruct_ov70_0225DEE8 *param0) { return ov70_0225EE04(¶m0->unk_39C); } @@ -986,12 +982,12 @@ BOOL ov70_0225E064(const UnkStruct_ov70_0225DEE8 *param0, u32 param1) return ov70_0225EE08(¶m0->unk_39C, param1); } -void ov70_0225E074(UnkStruct_ov70_0225DEE8 *param0, const UnkStruct_ov84_02240FA8 *param1, u16 param2, u16 param3) +void ov70_0225E074(UnkStruct_ov70_0225DEE8 *param0, const ListMenuTemplate *param1, u16 param2, u16 param3) { ov70_0225EE30(¶m0->unk_39C, param1, ¶m0->unk_3C, param2, param3, 112, 16, 3, 15); } -extern void ov70_0225E0A4(UnkStruct_ov70_0225DEE8 *param0, const UnkStruct_ov84_02240FA8 *param1, u16 param2, u16 param3, u8 param4, u8 param5, u8 param6) +extern void ov70_0225E0A4(UnkStruct_ov70_0225DEE8 *param0, const ListMenuTemplate *param1, u16 param2, u16 param3, u8 param4, u8 param5, u8 param6) { ov70_0225EE30(¶m0->unk_39C, param1, ¶m0->unk_3C, param2, param3, 112, param4, param5, param6); } @@ -1266,7 +1262,7 @@ static void ov70_0225E4EC(UnkStruct_ov70_0225E4EC *param0, SaveData *param1, u32 G2_BlendNone(); G2S_BlendNone(); - sub_0201DBEC(32, param2); + VRAMTransferManager_New(32, param2); GXLayers_SetBanks(&Unk_ov70_0226D664); gCoreSys.unk_65 = 0; GXLayers_SwapDisplay(); @@ -1298,9 +1294,9 @@ static void ov70_0225E4EC(UnkStruct_ov70_0225E4EC *param0, SaveData *param1, u32 Font_LoadTextPalette(0, 5 * 32, param2); Font_LoadScreenIndicatorsPalette(0, 4 * 32, param2); - sub_0200DAA4(param0->unk_00, Unk_ov70_0226D5CC[0], ((1 + (18 + 12)) + ((18 + 12) + 24)), 3, 0, param2); - sub_0200DD0C(param0->unk_00, Unk_ov70_0226D5CC[0], 1, 1, v2, param2); - sub_0200E2A4(param0->unk_00, Unk_ov70_0226D5CC[0], (1 + (18 + 12)), 2, 3, 0, param2); + LoadStandardWindowGraphics(param0->unk_00, Unk_ov70_0226D5CC[0], ((1 + (18 + 12)) + ((18 + 12) + 24)), 3, 0, param2); + LoadMessageBoxGraphics(param0->unk_00, Unk_ov70_0226D5CC[0], 1, 1, v2, param2); + LoadSignpostContentGraphics(param0->unk_00, Unk_ov70_0226D5CC[0], (1 + (18 + 12)), 2, 3, 0, param2); Graphics_LoadPalette(186, 90, 0, 2 * 32, 32, param2); } @@ -1347,7 +1343,7 @@ static void ov70_0225E6C0(UnkStruct_ov70_0225E4EC *param0) static void ov70_0225E6D0(UnkStruct_ov70_0225E4EC *param0) { - sub_0201DC3C(); + VRAMTransferManager_Destroy(); { int v0; @@ -1554,7 +1550,7 @@ static void ov70_0225EA44(UnkStruct_ov70_0225E9C8 *param0, const Strbuf *param1) param0->unk_10 = Text_AddPrinterWithParamsAndColor(¶m0->unk_00, FONT_MESSAGE, param0->unk_18, 0, 0, param0->unk_14, TEXT_COLOR(1, 2, 15), NULL); - sub_0200E060(¶m0->unk_00, 1, 1, 1); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_00, 1, 1, 1); } static void ov70_0225EAA4(UnkStruct_ov70_0225E9C8 *param0, const Strbuf *param1) @@ -1566,20 +1562,20 @@ static void ov70_0225EAA4(UnkStruct_ov70_0225E9C8 *param0, const Strbuf *param1) Window_FillTilemap(¶m0->unk_00, 15); Strbuf_Copy(param0->unk_18, param1); Text_AddPrinterWithParamsAndColor(¶m0->unk_00, FONT_MESSAGE, param0->unk_18, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); - sub_0200E060(¶m0->unk_00, 1, 1, 1); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_00, 1, 1, 1); Window_ScheduleCopyToVRAM(¶m0->unk_00); } static void ov70_0225EB08(UnkStruct_ov70_0225E9C8 *param0) { GF_ASSERT(param0->unk_1C == NULL); - param0->unk_1C = sub_0200E7FC(¶m0->unk_00, 1); + param0->unk_1C = Window_AddWaitDial(¶m0->unk_00, 1); } static void ov70_0225EB24(UnkStruct_ov70_0225E9C8 *param0) { if (param0->unk_1C != NULL) { - DeleteWaitDial(param0->unk_1C); + DestroyWaitDial(param0->unk_1C); param0->unk_1C = NULL; } } @@ -1587,7 +1583,7 @@ static void ov70_0225EB24(UnkStruct_ov70_0225E9C8 *param0) static void ov70_0225EB38(UnkStruct_ov70_0225E9C8 *param0) { if (param0->unk_1C != NULL) { - sub_0200EBC8(param0->unk_1C); + DestroyWaitDialTaskOnly(param0->unk_1C); param0->unk_1C = NULL; } } @@ -1618,7 +1614,7 @@ static void ov70_0225EB74(UnkStruct_ov70_0225E9C8 *param0) ov70_0225EB38(param0); - sub_0200E084(¶m0->unk_00, 1); + Window_EraseMessageBox(¶m0->unk_00, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_00); } @@ -1644,7 +1640,7 @@ static void ov70_0225EBC4(UnkStruct_ov70_0225E9C8 *param0, const Strbuf *param1) param0->unk_10 = Text_AddPrinterWithParams(¶m0->unk_00, FONT_MESSAGE, param0->unk_18, 0, 0, param0->unk_14, NULL); - sub_0200E69C(¶m0->unk_00, 1, (1 + (18 + 12)), 2, 3); + Window_DrawSignpost(¶m0->unk_00, 1, (1 + (18 + 12)), 2, 3); } static void ov70_0225EC20(UnkStruct_ov70_0225EC20 *param0, UnkStruct_ov70_0225E4EC *param1, u32 param2) @@ -1712,18 +1708,18 @@ static void ov70_0225EDA8(UnkStruct_ov70_0225EC20 *param0, u32 param1, u32 param { int v0; GF_ASSERT(param0->unk_34 == NULL); - param0->unk_34 = sub_02013A04(param1, param2); + param0->unk_34 = StringList_New(param1, param2); param0->unk_38 = param1; for (v0 = 0; v0 < param1; v0++) { - param0->unk_34[v0].unk_04 = param3; + param0->unk_34[v0].index = param3; } } static void ov70_0225EDE0(UnkStruct_ov70_0225EC20 *param0) { if (param0->unk_34 != NULL) { - sub_02013A3C(param0->unk_34); + StringList_Free(param0->unk_34); param0->unk_34 = NULL; param0->unk_38 = 0; } @@ -1731,10 +1727,10 @@ static void ov70_0225EDE0(UnkStruct_ov70_0225EC20 *param0) static void ov70_0225EDF8(UnkStruct_ov70_0225EC20 *param0, const Strbuf *param1, u32 param2) { - sub_02013A6C(param0->unk_34, param1, param2); + StringList_AddFromStrbuf(param0->unk_34, param1, param2); } -static const ResourceMetadata *ov70_0225EE04(const UnkStruct_ov70_0225EC20 *param0) +static const StringList *ov70_0225EE04(const UnkStruct_ov70_0225EC20 *param0) { return param0->unk_34; } @@ -1744,7 +1740,7 @@ static BOOL ov70_0225EE08(const UnkStruct_ov70_0225EC20 *param0, u32 param1) int v0; for (v0 = 0; v0 < param0->unk_38; v0++) { - if (param0->unk_34[v0].unk_04 == param1) { + if (param0->unk_34[v0].index == param1) { return 1; } } @@ -1752,21 +1748,21 @@ static BOOL ov70_0225EE08(const UnkStruct_ov70_0225EC20 *param0, u32 param1) return 0; } -static void ov70_0225EE30(UnkStruct_ov70_0225EC20 *param0, const UnkStruct_ov84_02240FA8 *param1, UnkStruct_ov70_0225E4EC *param2, u16 param3, u16 param4, u32 param5, u8 param6, u8 param7, u8 param8) +static void ov70_0225EE30(UnkStruct_ov70_0225EC20 *param0, const ListMenuTemplate *param1, UnkStruct_ov70_0225E4EC *param2, u16 param3, u16 param4, u32 param5, u8 param6, u8 param7, u8 param8) { GF_ASSERT(param0->unk_30 == NULL); - GF_ASSERT((param1->unk_12 * 2) < 18); + GF_ASSERT((param1->maxDisplay * 2) < 18); param0->unk_00 = *param1; - param0->unk_00.unk_0C = ¶m0->unk_20; - param0->unk_3A = param1->unk_10; - param0->unk_00.unk_04 = ov70_0225EF58; + param0->unk_00.window = ¶m0->unk_20; + param0->unk_3A = param1->count; + param0->unk_00.cursorCallback = ov70_0225EF58; - Window_Add(param2->unk_00, ¶m0->unk_20, Unk_ov70_0226D5CC[0], param6, param7, param8, param1->unk_12 * 2, 5, ((((1 + (18 + 12)) + ((18 + 12) + 24)) + 9) + (27 * 4))); + Window_Add(param2->unk_00, ¶m0->unk_20, Unk_ov70_0226D5CC[0], param6, param7, param8, param1->maxDisplay * 2, 5, ((((1 + (18 + 12)) + ((18 + 12) + 24)) + 9) + (27 * 4))); Window_FillTilemap(¶m0->unk_20, 15); - Window_Show(¶m0->unk_20, 1, ((1 + (18 + 12)) + ((18 + 12) + 24)), 3); + Window_DrawStandardFrame(¶m0->unk_20, 1, ((1 + (18 + 12)) + ((18 + 12) + 24)), 3); - param0->unk_30 = sub_0200112C(¶m0->unk_00, param3, param4, param5); + param0->unk_30 = ListMenu_New(¶m0->unk_00, param3, param4, param5); Window_ScheduleCopyToVRAM(¶m0->unk_20); } @@ -1779,7 +1775,7 @@ static u32 ov70_0225EED8(UnkStruct_ov70_0225EC20 *param0) return 0xfffffffe; } - v0 = sub_02001288(param0->unk_30); + v0 = ListMenu_ProcessInput(param0->unk_30); switch (v0) { case 0xffffffff: @@ -1802,11 +1798,11 @@ static void ov70_0225EF14(UnkStruct_ov70_0225EC20 *param0, u16 *param1, u16 *par return; } - sub_02001384(param0->unk_30, param1, param2); + ListMenu_Free(param0->unk_30, param1, param2); param0->unk_30 = NULL; - Window_Clear(¶m0->unk_20, 1); + Window_EraseStandardFrame(¶m0->unk_20, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_20); Window_Remove(¶m0->unk_20); @@ -1817,7 +1813,7 @@ static void ov70_0225EF14(UnkStruct_ov70_0225EC20 *param0, u16 *param1, u16 *par } } -static void ov70_0225EF58(BmpList *param0, u32 param1, u8 param2) +static void ov70_0225EF58(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); @@ -1839,7 +1835,7 @@ static void ov70_0225EF70(UnkStruct_ov70_0225EC20 *param0) return; } - sub_020014DC(param0->unk_30, &v0, NULL); + ListMenu_GetListAndCursorPos(param0->unk_30, &v0, NULL); if (v0 <= 0) { CellActor_SetDrawFlag(param0->unk_50[0], 0); @@ -1867,7 +1863,7 @@ static void ov70_0225EFD8(UnkStruct_ov70_0225EFD4 *param0) static void ov70_0225EFE0(UnkStruct_ov70_0225EFD4 *param0, UnkStruct_ov70_0225E4EC *param1, u32 param2, u8 param3, u8 param4, u8 param5, u8 param6) { Window_Add(param1->unk_00, ¶m0->unk_00, Unk_ov70_0226D5CC[0], param3, param4, param5, param6, 5, ((((1 + (18 + 12)) + ((18 + 12) + 24)) + 9) + (27 * 4))); - Window_Show(¶m0->unk_00, 1, ((1 + (18 + 12)) + ((18 + 12) + 24)), 3); + Window_DrawStandardFrame(¶m0->unk_00, 1, ((1 + (18 + 12)) + ((18 + 12) + 24)), 3); Window_FillTilemap(¶m0->unk_00, 15); Window_ScheduleCopyToVRAM(¶m0->unk_00); } @@ -1875,7 +1871,7 @@ static void ov70_0225EFE0(UnkStruct_ov70_0225EFD4 *param0, UnkStruct_ov70_0225E4 static void ov70_0225F024(UnkStruct_ov70_0225EFD4 *param0) { if (Window_IsInUse(¶m0->unk_00) == 1) { - Window_Clear(¶m0->unk_00, 1); + Window_EraseStandardFrame(¶m0->unk_00, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_00); Window_Remove(¶m0->unk_00); } @@ -1897,22 +1893,22 @@ static void ov70_0225F098(UnkStruct_ov70_0225F098 *param0, UnkStruct_ov70_0225F2 Strbuf *v0; GF_ASSERT(param0->unk_00 == NULL); - param0->unk_00 = sub_02013A04(2, param2); + param0->unk_00 = StringList_New(2, param2); v0 = ov70_0225F288(param1, 1, 67); - sub_02013A6C(param0->unk_00, v0, 0); + StringList_AddFromStrbuf(param0->unk_00, v0, 0); v0 = ov70_0225F288(param1, 1, 66); - sub_02013A6C(param0->unk_00, v0, 1); + StringList_AddFromStrbuf(param0->unk_00, v0, 1); param0->unk_04 = Unk_ov70_0226D644; - param0->unk_04.unk_10 = 2; - param0->unk_04.unk_00 = param0->unk_00; + param0->unk_04.count = 2; + param0->unk_04.choices = param0->unk_00; } static void ov70_0225F100(UnkStruct_ov70_0225F098 *param0) { if (param0->unk_00 != NULL) { - sub_02013A3C(param0->unk_00); + StringList_Free(param0->unk_00); param0->unk_00 = NULL; } } @@ -1931,7 +1927,7 @@ static void ov70_0225F144(UnkStruct_ov70_0225F114 *param0) static void ov70_0225F14C(UnkStruct_ov70_0225F114 *param0, const Strbuf *param1) { Text_AddPrinterWithParamsAndColor(¶m0->unk_00, FONT_SYSTEM, param1, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); - Window_Show(¶m0->unk_00, 1, ((1 + (18 + 12)) + ((18 + 12) + 24)), 3); + Window_DrawStandardFrame(¶m0->unk_00, 1, ((1 + (18 + 12)) + ((18 + 12) + 24)), 3); Window_ScheduleCopyToVRAM(¶m0->unk_00); } @@ -2113,11 +2109,11 @@ static void ov70_0225F418(UnkStruct_ov70_0225F350 *param0, UnkStruct_ov70_0225DE } break; case 1: - sub_0200F174(4, 0, 0, 0x7fff, 4, 1, param3); + StartScreenTransition(4, 0, 0, 0x7fff, 4, 1, param3); param0->unk_00++; break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { { const UnkStruct_ov66_0222E71C *v4; @@ -2134,11 +2130,11 @@ static void ov70_0225F418(UnkStruct_ov70_0225F350 *param0, UnkStruct_ov70_0225DE } break; case 3: - sub_0200F174(4, 1, 1, 0x7fff, 6, 1, param3); + StartScreenTransition(4, 1, 1, 0x7fff, 6, 1, param3); param0->unk_00++; break; case 4: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_00++; } break; @@ -2195,11 +2191,11 @@ static void ov70_0225F418(UnkStruct_ov70_0225F350 *param0, UnkStruct_ov70_0225DE } break; case 6: - sub_0200F174(4, 1, 0, 0x0, 3, 1, param3); + StartScreenTransition(4, 1, 0, 0x0, 3, 1, param3); param0->unk_00++; break; case 7: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { switch (param0->unk_01) { case 1: case 4: @@ -2278,7 +2274,7 @@ static void ov70_0225F418(UnkStruct_ov70_0225F350 *param0, UnkStruct_ov70_0225DE param0->unk_00++; } break; case 9: - sub_0200F174(4, 1, 1, 0x0, 3, 1, param3); + StartScreenTransition(4, 1, 1, 0x0, 3, 1, param3); if (param0->unk_01 == 2) { ov70_0225FACC(¶m0->unk_08, ¶m1->unk_37C); @@ -2287,7 +2283,7 @@ static void ov70_0225F418(UnkStruct_ov70_0225F350 *param0, UnkStruct_ov70_0225DE param0->unk_00++; break; case 10: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_00 = 5; } break; diff --git a/src/overlay070/ov70_022630A4.c b/src/overlay070/ov70_022630A4.c index 13a9e359a4..fdfc87a039 100644 --- a/src/overlay070/ov70_022630A4.c +++ b/src/overlay070/ov70_022630A4.c @@ -32,10 +32,10 @@ #include "overlay070/struct_ov70_02263910.h" #include "overlay070/struct_ov70_02265F38.h" #include "overlay070/struct_ov70_0226DA18.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "core_sys.h" #include "enums.h" +#include "list_menu.h" #include "strbuf.h" #include "unk_02005474.h" #include "unk_0201D15C.h" @@ -52,7 +52,7 @@ typedef struct { u16 unk_00; u16 unk_02; s32 unk_04; - UnkStruct_ov84_02240FA8 unk_08; + ListMenuTemplate unk_08; u16 unk_28; u16 unk_2A; } UnkStruct_ov70_022653DC; @@ -160,7 +160,7 @@ static BOOL ov70_02265A84(UnkStruct_ov70_02263344 *param0, UnkStruct_ov70_0225DE static BOOL ov70_02265CCC(UnkStruct_ov70_02265CCC *param0, UnkStruct_ov66_0222DFF8 *param1, UnkStruct_ov70_0225DEE8 *param2, UnkStruct_ov70_0225CC54 *param3, u8 param4, int param5); static BOOL ov70_02265ED0(const UnkStruct_ov70_0225C894 *param0, const UnkStruct_ov70_0225CA20 *param1, const u32 *param2, u32 param3, UnkStruct_ov63_0222CC3C *param4); -static const UnkStruct_ov84_02240FA8 Unk_ov70_0226DA98 = { +static const ListMenuTemplate Unk_ov70_0226DA98 = { NULL, NULL, NULL, @@ -2698,7 +2698,7 @@ static void ov70_022653DC(UnkStruct_ov70_022653DC *param0, UnkStruct_ov70_0225DE ov70_0225E044(param1, v1, 0); param0->unk_08 = Unk_ov70_0226DA98; - param0->unk_08.unk_00 = ov70_0225E054(param1); + param0->unk_08.choices = ov70_0225E054(param1); } static void ov70_02265450(UnkStruct_ov70_022653DC *param0, UnkStruct_ov70_0225DEE8 *param1) diff --git a/src/overlay070/ov70_02265F38.c b/src/overlay070/ov70_02265F38.c index 1a30fbb1d4..3f857acb99 100644 --- a/src/overlay070/ov70_02265F38.c +++ b/src/overlay070/ov70_02265F38.c @@ -16,12 +16,12 @@ #include "overlay070/struct_ov70_0225DEE8_decl.h" #include "overlay070/struct_ov70_02263344_decl.h" #include "overlay070/struct_ov70_02265F38.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "communication_information.h" #include "communication_system.h" #include "core_sys.h" #include "enums.h" +#include "list_menu.h" #include "strbuf.h" #include "unk_02005474.h" #include "unk_020363E8.h" @@ -49,7 +49,7 @@ typedef struct { s32 unk_0C; s32 unk_10; BOOL unk_14; - UnkStruct_ov84_02240FA8 unk_18; + ListMenuTemplate unk_18; u32 unk_38; UnkStruct_ov70_02266C68 unk_3C; } UnkStruct_ov70_02266AF0; @@ -70,7 +70,7 @@ static void ov70_02266CFC(UnkStruct_ov70_02266C68 *param0, UnkStruct_ov70_0225DE static void ov70_02266CF0(UnkStruct_ov70_02266C68 *param0, UnkStruct_ov70_0225DEE8 *param1, BOOL param2); static void ov70_02266D08(UnkStruct_ov70_02266C68 *param0, UnkStruct_ov70_0225DEE8 *param1, BOOL param2, BOOL param3); -static const UnkStruct_ov84_02240FA8 Unk_ov70_0226DC94 = { +static const ListMenuTemplate Unk_ov70_0226DC94 = { NULL, NULL, NULL, @@ -865,13 +865,13 @@ static void ov70_02266B30(UnkStruct_ov70_02266AF0 *param0, UnkStruct_ov70_0225DE } param0->unk_18 = Unk_ov70_0226DC94; - param0->unk_18.unk_10 = param0->unk_38; + param0->unk_18.count = param0->unk_38; - if (param0->unk_18.unk_12 > param0->unk_38) { - param0->unk_18.unk_12 = param0->unk_38; + if (param0->unk_18.maxDisplay > param0->unk_38) { + param0->unk_18.maxDisplay = param0->unk_38; } - param0->unk_18.unk_00 = ov70_0225E054(param1); + param0->unk_18.choices = ov70_0225E054(param1); } static void ov70_02266BA0(UnkStruct_ov70_02266AF0 *param0, UnkStruct_ov70_0225DEE8 *param1) diff --git a/src/overlay070/ov70_02266E9C.c b/src/overlay070/ov70_02266E9C.c index c955218fdc..b9a9f32cc1 100644 --- a/src/overlay070/ov70_02266E9C.c +++ b/src/overlay070/ov70_02266E9C.c @@ -17,15 +17,15 @@ #include "overlay070/struct_ov70_0225DEE8_decl.h" #include "overlay070/struct_ov70_022630A4_decl.h" #include "overlay070/struct_ov70_02263344_decl.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "enums.h" +#include "list_menu.h" #include "strbuf.h" #include "unk_02005474.h" #include "unk_0201D15C.h" typedef struct { - UnkStruct_ov84_02240FA8 unk_00; + ListMenuTemplate unk_00; u32 unk_20; } UnkStruct_ov70_02268E44; @@ -100,7 +100,7 @@ static void ov70_02269144(UnkStruct_ov70_02269114 *param0, UnkStruct_ov66_0222DF static BOOL ov70_02269178(const UnkStruct_ov70_02269114 *param0); static u16 ov70_02269188(const UnkStruct_ov70_02269114 *param0); -static const UnkStruct_ov84_02240FA8 Unk_ov70_0226DCBC = { +static const ListMenuTemplate Unk_ov70_0226DCBC = { NULL, NULL, NULL, @@ -2279,13 +2279,13 @@ static void ov70_02268E44(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DE } param0->unk_00 = Unk_ov70_0226DCBC; - param0->unk_00.unk_10 = param0->unk_20; + param0->unk_00.count = param0->unk_20; - if (param0->unk_00.unk_12 > param0->unk_20) { - param0->unk_00.unk_12 = param0->unk_20; + if (param0->unk_00.maxDisplay > param0->unk_20) { + param0->unk_00.maxDisplay = param0->unk_20; } - param0->unk_00.unk_00 = ov70_0225E054(param1); + param0->unk_00.choices = ov70_0225E054(param1); } static void ov70_02268EEC(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DEE8 *param1, u32 param2, u32 param3, u32 param4, u32 param5) @@ -2322,13 +2322,13 @@ static void ov70_02268EEC(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DE } param0->unk_00 = Unk_ov70_0226DCBC; - param0->unk_00.unk_10 = param0->unk_20; + param0->unk_00.count = param0->unk_20; - if (param0->unk_00.unk_12 > param0->unk_20) { - param0->unk_00.unk_12 = param0->unk_20; + if (param0->unk_00.maxDisplay > param0->unk_20) { + param0->unk_00.maxDisplay = param0->unk_20; } - param0->unk_00.unk_00 = ov70_0225E054(param1); + param0->unk_00.choices = ov70_0225E054(param1); } static void ov70_02268FB8(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DEE8 *param1) @@ -2355,9 +2355,9 @@ static void ov70_02268FB8(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DE } param0->unk_00 = Unk_ov70_0226DCBC; - param0->unk_00.unk_10 = param0->unk_20; - param0->unk_00.unk_12 = param0->unk_20; - param0->unk_00.unk_00 = ov70_0225E054(param1); + param0->unk_00.count = param0->unk_20; + param0->unk_00.maxDisplay = param0->unk_20; + param0->unk_00.choices = ov70_0225E054(param1); } static void ov70_02269018(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DEE8 *param1) @@ -2379,9 +2379,9 @@ static void ov70_02269018(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DE ov70_0225E044(param1, v1, 4 - 1); param0->unk_00 = Unk_ov70_0226DCBC; - param0->unk_00.unk_10 = param0->unk_20; - param0->unk_00.unk_12 = param0->unk_20; - param0->unk_00.unk_00 = ov70_0225E054(param1); + param0->unk_00.count = param0->unk_20; + param0->unk_00.maxDisplay = param0->unk_20; + param0->unk_00.choices = ov70_0225E054(param1); } static void ov70_02269090(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DEE8 *param1) @@ -2403,9 +2403,9 @@ static void ov70_02269090(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DE ov70_0225E044(param1, v1, 4 - 1); param0->unk_00 = Unk_ov70_0226DCBC; - param0->unk_00.unk_10 = param0->unk_20; - param0->unk_00.unk_12 = param0->unk_20; - param0->unk_00.unk_00 = ov70_0225E054(param1); + param0->unk_00.count = param0->unk_20; + param0->unk_00.maxDisplay = param0->unk_20; + param0->unk_00.choices = ov70_0225E054(param1); } static void ov70_02269108(UnkStruct_ov70_02268E44 *param0, UnkStruct_ov70_0225DEE8 *param1) diff --git a/src/overlay070/ov70_0226C8B4.c b/src/overlay070/ov70_0226C8B4.c index c89d7f2951..1d88bfb2cf 100644 --- a/src/overlay070/ov70_0226C8B4.c +++ b/src/overlay070/ov70_0226C8B4.c @@ -407,7 +407,7 @@ static void ov70_0226CC3C(UnkStruct_ov70_0226C914 *param0) static void ov70_0226CC58(UnkStruct_ov70_0226C914 *param0) { if (param0->unk_09) { - sub_020057A4(1438, 0); + Sound_StopEffect(1438, 0); param0->unk_09 = 0; } } diff --git a/src/overlay071/ov71_0223B140.c b/src/overlay071/ov71_0223B140.c index c31e337ed0..73f87d8ea5 100644 --- a/src/overlay071/ov71_0223B140.c +++ b/src/overlay071/ov71_0223B140.c @@ -244,9 +244,9 @@ int ov71_0223B140(OverlayManager *param0, int *param1) ov71_0223C288(); SetMainCallback(ov71_0223C18C, NULL); - sub_020397E4(); + DrawWifiConnectionIcon(); sub_0200544C(1, (127 / 3)); - sub_0200F174(2, 3, 3, 0x0, 6, 1, 25); + StartScreenTransition(2, 3, 3, 0x0, 6, 1, 25); NARC_dtor(v1); return 1; @@ -258,7 +258,7 @@ int ov71_0223B388(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 1; } @@ -316,7 +316,7 @@ int ov71_0223B388(OverlayManager *param0, int *param1) } else if (v1 == 4) { Sound_PlayEffect(1500); - sub_0200F174(1, 4, 4, 0x0, 6, 1, 25); + StartScreenTransition(1, 4, 4, 0x0, 6, 1, 25); *param1 = 2; } } @@ -324,7 +324,7 @@ int ov71_0223B388(OverlayManager *param0, int *param1) ov71_0223C5A4(v0, v0->unk_B4->unk_04_1); } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; diff --git a/src/overlay072/ov72_0223D7A0.c b/src/overlay072/ov72_0223D7A0.c index f8ac7d3d66..371836104b 100644 --- a/src/overlay072/ov72_0223D7A0.c +++ b/src/overlay072/ov72_0223D7A0.c @@ -31,6 +31,7 @@ #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" @@ -43,7 +44,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_02015920.h" @@ -134,7 +134,7 @@ int ov72_0223D7A0(OverlayManager *param0, int *param1) SetAutorepeat(4, 8); ov72_0223DA70(); ov72_0223DA90(v0->unk_00); - sub_0200F174(0, 1, 1, 0x0, 16, 1, 39); + StartScreenTransition(0, 1, 1, 0x0, 16, 1, 39); { SaveData *v2 = (SaveData *)OverlayManager_Args(param0); @@ -178,7 +178,7 @@ int ov72_0223D920(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 1; } break; @@ -191,7 +191,7 @@ int ov72_0223D920(OverlayManager *param0, int *param1) ov72_0223E8D0(&v0->unk_437C); break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -451,8 +451,8 @@ static void ov72_0223DCA8(UnkStruct_ov72_0223DB98 *param0, NARC *param1) Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 5, v0, 2, 0, 32 * 24 * 2, 1, 39); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 4, v0, 5, 0, 32 * 8 * 0x20, 1, 39); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 6, v0, 5, 0, 32 * 24 * 2, 1, 39); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_0C), 39); - sub_0200DAA4(v0, 0, 1 + (18 + 12), 11, 0, 39); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_0C), 39); + LoadStandardWindowGraphics(v0, 0, 1 + (18 + 12), 11, 0, 39); } static void ov72_0223DDA8(void) @@ -765,15 +765,15 @@ static int ov72_0223E488(UnkStruct_ov72_0223DB98 *param0, int param1) case 1: GameRecords_IncrementTrainerScore(param0->records, TRAINER_SCORE_EVENT_UNK_04); GameRecords_IncrementRecordValue(param0->records, RECORD_UNK_114); - sub_0200E084(¶m0->unk_338, 1); + Window_EraseMessageBox(¶m0->unk_338, 1); sub_02015A54(param0->unk_5D00); - sub_0200F174(0, 0, 0, 0x0, 16, 1, 39); + StartScreenTransition(0, 0, 0, 0x0, 16, 1, 39); return 2; break; case 2: param0->unk_370 = 4; ov72_0223E3A8(param0->unk_2B4, 0); - sub_0200E084(¶m0->unk_338, 1); + Window_EraseMessageBox(¶m0->unk_338, 1); sub_02015A54(param0->unk_5D00); break; } @@ -792,14 +792,14 @@ static int ov72_0223E528(UnkStruct_ov72_0223DB98 *param0, int param1) case 1: param0->unk_370 = 1; - sub_0200E084(¶m0->unk_338, 1); + Window_EraseMessageBox(¶m0->unk_338, 1); sub_02015A54(param0->unk_5D00); Window_FillTilemap(¶m0->unk_328, 0x202); Window_CopyToVRAM(¶m0->unk_328); break; case 2: param0->unk_370 = 1; - sub_0200E084(¶m0->unk_338, 1); + Window_EraseMessageBox(¶m0->unk_338, 1); sub_02015A54(param0->unk_5D00); break; } @@ -1107,7 +1107,7 @@ static void ov72_0223E930(UnkStruct_ov72_0223DB98 *param0, int param1) StringTemplate_Format(param0->unk_10, param0->unk_34, v0); Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_338, 0xf0f); - sub_0200E060(¶m0->unk_338, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_338, 0, 1, 10); param0->unk_38 = Text_AddPrinterWithParams(¶m0->unk_338, FONT_MESSAGE, param0->unk_34, 0, 0, Options_TextFrameDelay(param0->unk_0C), NULL); } diff --git a/src/overlay073/ov73_021D0D80.c b/src/overlay073/ov73_021D0D80.c index 047f20876b..5016ea3754 100644 --- a/src/overlay073/ov73_021D0D80.c +++ b/src/overlay073/ov73_021D0D80.c @@ -1,18 +1,14 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02015920_decl.h" #include "struct_defs/archived_sprite.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_02015958.h" #include "struct_defs/struct_0203CC84.h" #include "struct_defs/struct_0208737C.h" #include "struct_defs/struct_02099F80.h" #include "overlay057/const_ov57_021D0F80.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "core_sys.h" @@ -21,28 +17,28 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" #include "message.h" #include "overlay_manager.h" #include "palette.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "savedata_misc.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" #include "unk_02000C88.h" -#include "unk_0200112C.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" -#include "unk_02013A04.h" #include "unk_0201567C.h" #include "unk_02015920.h" #include "unk_02017728.h" @@ -63,8 +59,8 @@ typedef struct { Window unk_1C; int unk_2C; Window unk_30; - BmpList *unk_40; - ResourceMetadata *unk_44; + ListMenu *unk_40; + StringList *unk_44; int unk_48; MessageLoader *unk_4C; int unk_50; @@ -190,17 +186,17 @@ int ov73_021D0E20(OverlayManager *param0, int *param1) break; case 1: if (ov73_021D2318(v0) == 1) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); *param1 = 2; } if (v0->unk_14 != NULL) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); *param1 = 3; } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov73_021D1300(v0); ov73_021D1238(v0); ov73_021D1328(v0); @@ -210,7 +206,7 @@ int ov73_021D0E20(OverlayManager *param0, int *param1) } break; case 3: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov73_021D1300(v0); ov73_021D1238(v0); ov73_021D1328(v0); @@ -363,8 +359,8 @@ static void ov73_021D1058(UnkStruct_ov73_021D1058 *param0) Bg_InitFromTemplate(param0->unk_18, 3, &v2, 0); Bg_ClearTilemap(param0->unk_18, 3); - sub_0200DD0C(param0->unk_18, 0, (0x400 - (18 + 12)), 4, 0, param0->unk_00); - sub_0200DAA4(param0->unk_18, 0, ((0x400 - (18 + 12)) - 9), 3, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_18, 0, (0x400 - (18 + 12)), 4, 0, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_18, 0, ((0x400 - (18 + 12)) - 9), 3, 0, param0->unk_00); Font_LoadTextPalette(0, 5 * (2 * 16), param0->unk_00); Font_LoadScreenIndicatorsPalette(0, 6 * (2 * 16), param0->unk_00); } @@ -646,7 +642,7 @@ const WindowTemplate Unk_ov72_021D37D4 = { 0x12D }; -static const UnkStruct_ov84_02240FA8 Unk_ov72_021D390C = { +static const ListMenuTemplate Unk_ov72_021D390C = { NULL, NULL, NULL, @@ -702,7 +698,7 @@ static BOOL ov73_021D1510(UnkStruct_ov73_021D1058 *param0, u32 param1, int param case 0: Window_AddFromTemplate(param0->unk_18, ¶m0->unk_1C, &Unk_ov72_021D37EC); Window_FillRectWithColor(¶m0->unk_1C, 15, 0, 0, 27 * 8, 4 * 8); - sub_0200E060(¶m0->unk_1C, 0, (0x400 - (18 + 12)), 4); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1C, 0, (0x400 - (18 + 12)), 4); RenderControlFlags_SetCanABSpeedUpPrint(1); RenderControlFlags_SetAutoScrollFlags(0); @@ -738,7 +734,7 @@ static BOOL ov73_021D1510(UnkStruct_ov73_021D1058 *param0, u32 param1, int param return v0; } -static void ov73_021D1634(BmpList *param0, u32 param1, u8 param2) +static void ov73_021D1634(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); @@ -748,7 +744,7 @@ static void ov73_021D1634(BmpList *param0, u32 param1, u8 param2) static BOOL ov73_021D1648(UnkStruct_ov73_021D1058 *param0, int param1, int param2) { BOOL v0 = 0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; const WindowTemplate *v2; const UnkStruct_ov72_021D3840 *v3; int v4, v5; @@ -782,28 +778,28 @@ static BOOL ov73_021D1648(UnkStruct_ov73_021D1058 *param0, int param1, int param Window_AddFromTemplate(param0->unk_18, ¶m0->unk_30, v2); - param0->unk_44 = sub_02013A04(v5, param0->unk_00); + param0->unk_44 = StringList_New(v5, param0->unk_00); for (v4 = 0; v4 < v5; v4++) { - sub_02013A4C(param0->unk_44, param0->unk_4C, v3[v4].unk_00, v3[v4].unk_04); + StringList_AddFromMessageBank(param0->unk_44, param0->unk_4C, v3[v4].unk_00, v3[v4].unk_04); } v1 = Unk_ov72_021D390C; - v1.unk_00 = param0->unk_44; - v1.unk_10 = v5; - v1.unk_12 = v5; - v1.unk_04 = ov73_021D1634; - v1.unk_0C = ¶m0->unk_30; + v1.choices = param0->unk_44; + v1.count = v5; + v1.maxDisplay = v5; + v1.cursorCallback = ov73_021D1634; + v1.window = ¶m0->unk_30; - param0->unk_40 = sub_0200112C(&v1, 0, 0, param0->unk_00); + param0->unk_40 = ListMenu_New(&v1, 0, 0, param0->unk_00); - Window_Show(v1.unk_0C, 1, ((0x400 - (18 + 12)) - 9), 3); + Window_DrawStandardFrame(v1.window, 1, ((0x400 - (18 + 12)) - 9), 3); Window_CopyToVRAM(¶m0->unk_30); param0->unk_2C = 1; break; case 1: - param0->unk_48 = sub_02001288(param0->unk_40); + param0->unk_48 = ListMenu_ProcessInput(param0->unk_40); if (param0->unk_48 == 0xffffffff) { break; @@ -813,10 +809,10 @@ static BOOL ov73_021D1648(UnkStruct_ov73_021D1058 *param0, int param1, int param break; } - Window_Clear(¶m0->unk_30, 0); + Window_EraseStandardFrame(¶m0->unk_30, 0); Window_Remove(¶m0->unk_30); - sub_02001384(param0->unk_40, NULL, NULL); - sub_02013A3C(param0->unk_44); + ListMenu_Free(param0->unk_40, NULL, NULL); + StringList_Free(param0->unk_44); Sound_PlayEffect(1500); param0->unk_2C = 0; @@ -1426,11 +1422,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) sub_020055D0(1029, 0); Bg_ToggleLayer(0, 1); Bg_ToggleLayer(7, 1); - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 1; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if (ov73_021D14B8(param0, 40) == 1) { param0->unk_0C = 2; } @@ -1451,11 +1447,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) ov73_021D1A20(param0); Bg_ToggleLayer(3, 1); Bg_ToggleLayer(1, 1); - sub_0200F174(3, 1, 1, 0x0, 16, 4, param0->unk_00); + StartScreenTransition(3, 1, 1, 0x0, 16, 4, param0->unk_00); param0->unk_0C = 4; break; case 4: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 5; } break; @@ -1490,11 +1486,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) } break; case 8: - sub_0200F174(0, 0, 0, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 9; break; case 9: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { { Bg_ClearTilemap(param0->unk_18, 0); } @@ -1509,11 +1505,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) ov73_021D19DC(param0); param0->unk_8B = 1; ov73_021D1B14(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 11; break; case 11: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 12; } break; @@ -1602,12 +1598,12 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) case 24: if (ov73_021D1334(param0, 6, 1) == 1) { sub_02015A54(param0->unk_68); - sub_0200F174(0, 0, 0, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 25; } break; case 25: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { { Bg_ClearTilemap(param0->unk_18, 0); } @@ -1639,11 +1635,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) ov73_021D1B14(param0); Bg_ToggleLayer(1, 1); Bg_SetOffset(param0->unk_18, 1, 0, 0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 29; break; case 29: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 30; } break; @@ -1657,11 +1653,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) ov73_021D19DC(param0); param0->unk_8B = 2; ov73_021D1B14(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 32; break; case 32: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 33; } break; @@ -1696,11 +1692,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) } break; case 39: - sub_0200F174(0, 0, 0, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 40; break; case 40: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { { Bg_ClearTilemap(param0->unk_18, 0); } @@ -1719,21 +1715,21 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) } break; case 43: - sub_0200F174(4, 0, 0, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(4, 0, 0, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 44; break; case 44: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov73_021D1CE0(param0); param0->unk_8B = 4; ov73_021D1B14(param0); Bg_ToggleLayer(6, 1); - sub_0200F174(4, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(4, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 45; } break; case 45: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 46; } break; @@ -1996,11 +1992,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) Bg_SetOffset(param0->unk_18, 2, 0, 0); } - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 78; break; case 78: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 79; } break; @@ -2140,11 +2136,11 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) Bg_ToggleLayer(7, 1); Bg_ToggleLayer(1, 1); Bg_SetOffset(param0->unk_18, 1, 0, 0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); param0->unk_0C = 94; break; case 94: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0C = 95; } break; diff --git a/src/overlay073/ov73_021D3250.c b/src/overlay073/ov73_021D3250.c index 5b68cbb488..caa8db7b30 100644 --- a/src/overlay073/ov73_021D3250.c +++ b/src/overlay073/ov73_021D3250.c @@ -108,14 +108,14 @@ int ov73_021D3280 (OverlayManager * param0, int * param1) v0->unk_24--; } else { v0->unk_24 = 0; - sub_0200F174(0, 1, 1, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, v0->unk_00); *param1 = 3; } break; case 3: ov73_021D37AC(v0); - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 4; } break; @@ -123,14 +123,14 @@ int ov73_021D3280 (OverlayManager * param0, int * param1) ov73_021D37AC(v0); if (ov73_021D3698(v0, 0, 5 * 8, 6 * 8) == 1) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); *param1 = 5; } break; case 5: ov73_021D37AC(v0); - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov73_021D368C(v0); ov73_021D35F4(v0); SetMainCallback(NULL, NULL); diff --git a/src/overlay074/ov74_021D0D80.c b/src/overlay074/ov74_021D0D80.c deleted file mode 100644 index 403a5f2da8..0000000000 --- a/src/overlay074/ov74_021D0D80.c +++ /dev/null @@ -1,775 +0,0 @@ -#include "overlay074/ov74_021D0D80.h" - -#include -#include - -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_0200C6E4_decl.h" -#include "struct_decls/struct_0200C704_decl.h" -#include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/struct_0203D8EC.h" -#include "struct_defs/struct_02099F80.h" - -#include "bg_window.h" -#include "core_sys.h" -#include "font.h" -#include "game_options.h" -#include "gx_layers.h" -#include "heap.h" -#include "message.h" -#include "narc.h" -#include "overlay_manager.h" -#include "render_text.h" -#include "strbuf.h" -#include "text.h" -#include "unk_02001AF4.h" -#include "unk_020041CC.h" -#include "unk_02005474.h" -#include "unk_0200C6E4.h" -#include "unk_0200DA60.h" -#include "unk_0200F174.h" -#include "unk_02017728.h" -#include "unk_0201DBEC.h" -#include "unk_020393C8.h" - -#define WINCLR_COL(col) (((col) << 4) | (col)) - -typedef struct UnkStruct_ov74_021D1720_t { - u16 unk_00; - u16 unk_02; - Strbuf *unk_04[20]; -} UnkStruct_ov74_021D1720; - -typedef struct UnkStruct_ov74_021D0D80_t { - int unk_00; - int unk_04; - int unk_08; - int unk_0C; - u32 unk_10_0 : 2; - u32 unk_10_2 : 3; - u32 unk_10_5 : 16; - u32 unk_10_21 : 1; - u32 unk_10_22 : 10; - BgConfig *unk_14; - UnkStruct_0203D8EC unk_18; - Options *unk_1C; - MessageLoader *unk_20; - void *unk_24; - NNSG2dScreenData *unk_28; - Window unk_2C[3]; - UnkStruct_ov74_021D1720 unk_5C[7]; - UIControlData *unk_2A8; - u32 unk_2AC; - SpriteRenderer *unk_2B0; - SpriteGfxHandler *unk_2B4; - CellActorData *unk_2B8; -} UnkStruct_ov74_021D0D80; - -int ov74_021D0D80(OverlayManager *param0, int *param1); -int ov74_021D0F60(OverlayManager *param0, int *param1); -int ov74_021D0E58(OverlayManager *param0, int *param1); -static void ov74_021D1118(void *param0); -static void ov74_021D10F8(void); -static int ov74_021D1178(UnkStruct_ov74_021D0D80 *param0); -static int ov74_021D122C(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D12D4(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D135C(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D1390(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D14E8(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D14F4(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D1624(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D1668(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D17CC(UnkStruct_ov74_021D0D80 *param0, u16 param1); -static void ov74_021D1BE4(UnkStruct_ov74_021D0D80 *param0, u16 param1, BOOL param2); -static void ov74_021D1968(UnkStruct_ov74_021D0D80 *param0, u16 param1, BOOL param2); -static BOOL ov74_021D1A08(const UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D1720(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D1A24(UnkStruct_ov74_021D0D80 *param0); -static BOOL ov74_021D1B44(UnkStruct_ov74_021D0D80 *param0); -static void ov74_021D1BA8(UnkStruct_ov74_021D0D80 *param0); -static u32 ov74_021D1BD0(UnkStruct_ov74_021D0D80 *param0); - -int ov74_021D0D80(OverlayManager *param0, int *param1) -{ - UnkStruct_ov74_021D0D80 *v0 = NULL; - Options *v1; - - v1 = (Options *)OverlayManager_Args(param0); - - Heap_Create(3, 38, 0x10000); - - v0 = OverlayManager_NewData(param0, sizeof(UnkStruct_ov74_021D0D80), 38); - memset(v0, 0, sizeof(UnkStruct_ov74_021D0D80)); - - v0->unk_18.unk_00_0 = Options_TextSpeed(v1); - v0->unk_18.unk_00_6 = Options_BattleScene(v1); - v0->unk_18.unk_00_7 = Options_BattleStyle(v1); - v0->unk_18.unk_00_4 = Options_SoundMode(v1); - v0->unk_18.unk_00_8 = Options_ButtonMode(v1); - v0->unk_18.unk_00_10 = Options_Frame(v1); - v0->unk_00 = 38; - v0->unk_1C = v1; - - RenderControlFlags_SetCanABSpeedUpPrint(0); - - return 1; -} - -int ov74_021D0E58(OverlayManager *param0, int *param1) -{ - UnkStruct_ov74_021D0D80 *v0 = OverlayManager_Data(param0); - - if (v0->unk_10_0 == 1) { - v0->unk_18.unk_00_0 = v0->unk_5C[0].unk_02; - v0->unk_18.unk_00_6 = v0->unk_5C[2].unk_02; - v0->unk_18.unk_00_7 = v0->unk_5C[3].unk_02; - v0->unk_18.unk_00_4 = v0->unk_5C[1].unk_02; - v0->unk_18.unk_00_8 = v0->unk_5C[4].unk_02; - v0->unk_18.unk_00_10 = v0->unk_5C[5].unk_02; - } - - Options_SetTextSpeed(v0->unk_1C, v0->unk_18.unk_00_0); - Options_SetBattleScene(v0->unk_1C, v0->unk_18.unk_00_6); - Options_SetBattleStyle(v0->unk_1C, v0->unk_18.unk_00_7); - Options_SetSoundMode(v0->unk_1C, v0->unk_18.unk_00_4); - Options_SetButtonMode(v0->unk_1C, v0->unk_18.unk_00_8); - Options_SetFrame(v0->unk_1C, v0->unk_18.unk_00_10); - sub_02004FB8(v0->unk_18.unk_00_4); - Options_SetSystemButtonMode(NULL, v0->unk_18.unk_00_8); - RenderControlFlags_SetCanABSpeedUpPrint(1); - OverlayManager_FreeData(param0); - Heap_Destroy(v0->unk_00); - - return 1; -} - -int ov74_021D0F60(OverlayManager *param0, int *param1) -{ - UnkStruct_ov74_021D0D80 *v0 = OverlayManager_Data(param0); - BOOL v1; - u32 v2; - - switch (v0->unk_04) { - case 0: - if (!ov74_021D1178(v0)) { - return 0; - } - - sub_0200F174(3, 1, 1, 0x0, 6, 1, v0->unk_00); - break; - case 1: - if (!ScreenWipe_Done()) { - return 0; - } - break; - case 2: - if (((gCoreSys.pressedKeys & PAD_BUTTON_A) && (v0->unk_10_2 == (7 - 1))) || (gCoreSys.pressedKeys & PAD_BUTTON_B)) { - v1 = ov74_021D1B44(v0); - - if (v1 == 1) { - v0->unk_04 = 3; - } else { - Sound_PlayEffect(1500); - v0->unk_10_0 = 2; - v0->unk_04 = 6; - } - - return 0; - } - - ov74_021D1A24(v0); - return 0; - case 3: - RenderControlFlags_SetCanABSpeedUpPrint(1); - ov74_021D1968(v0, 49, 0); - break; - case 4: - if (ov74_021D1A08(v0)) { - RenderControlFlags_SetCanABSpeedUpPrint(0); - ov74_021D1BA8(v0); - v0->unk_04 = 5; - } - - return 0; - case 5: - v2 = ov74_021D1BD0(v0); - - if (v2 != 0xffffffff) { - if (v2 == 0) { - sub_020057A4(1500, 0); - Sound_PlayEffect(1563); - v0->unk_10_0 = 1; - } else { - v0->unk_10_0 = 2; - } - - v0->unk_04 = 6; - } - - return 0; - case 6: - if (Text_IsPrinterActive(v0->unk_2AC)) { - Text_RemovePrinter(v0->unk_2AC); - } - - sub_0200F174(3, 0, 0, 0x0, 6, 1, v0->unk_00); - break; - case 7: - if (!ScreenWipe_Done()) { - return 0; - } - break; - case 8: - if (!ov74_021D122C(v0)) { - return 0; - } - - return 1; - } - - ++v0->unk_04; - return 0; -} - -static void ov74_021D10F8(void) -{ - UnkStruct_02099F80 v0 = { - GX_VRAM_BG_128_A, GX_VRAM_BGEXTPLTT_NONE, GX_VRAM_SUB_BG_128_C, GX_VRAM_SUB_BGEXTPLTT_NONE, GX_VRAM_OBJ_16_G, GX_VRAM_OBJEXTPLTT_NONE, GX_VRAM_SUB_OBJ_16_I, GX_VRAM_SUB_OBJEXTPLTT_NONE, GX_VRAM_TEX_NONE, GX_VRAM_TEXPLTT_NONE - }; - - GXLayers_SetBanks(&v0); -} - -static void ov74_021D1118(void *param0) -{ - UnkStruct_ov74_021D0D80 *v0 = param0; - - if (v0->unk_10_21) { - sub_0200DD0C(v0->unk_14, 1, ((((10 + 12 * 2) + 30 * 14) + 27 * 4) + 9), 15, v0->unk_5C[5].unk_02, v0->unk_00); - v0->unk_10_21 = 0; - } - - sub_0200C800(); - NNS_GfdDoVramTransfer(); - Bg_RunScheduledUpdates(v0->unk_14); - OS_SetIrqCheckFlag(OS_IE_V_BLANK); -} - -static int ov74_021D1178(UnkStruct_ov74_021D0D80 *param0) -{ - switch (param0->unk_08) { - case 0: - SetMainCallback(NULL, NULL); - DisableHBlank(); - GXLayers_DisableEngineALayers(); - GXLayers_DisableEngineBLayers(); - - GX_SetVisiblePlane(0); - GXS_SetVisiblePlane(0); - - ov74_021D10F8(); - sub_0200F32C(0); - sub_0200F32C(1); - ov74_021D12D4(param0); - break; - case 1: - ov74_021D1390(param0); - param0->unk_20 = MessageLoader_Init(1, 26, 220, param0->unk_00); - ov74_021D1720(param0); - break; - case 2: - ov74_021D14F4(param0); - ov74_021D1668(param0); - sub_0201DBEC(32, param0->unk_00); - GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); - sub_020397E4(); - SetMainCallback(ov74_021D1118, param0); - param0->unk_08 = 0; - return 1; - } - - ++param0->unk_08; - return 0; -} - -static int ov74_021D122C(UnkStruct_ov74_021D0D80 *param0) -{ - int v0 = 0, v1 = 0; - - switch (param0->unk_08) { - case 0: - sub_0201DC3C(); - ov74_021D1624(param0); - - for (v0 = 0; v0 < 7; v0++) { - for (v1 = 0; v1 < param0->unk_5C[v0].unk_00; v1++) { - Strbuf_Free(param0->unk_5C[v0].unk_04[v1]); - } - } - - MessageLoader_Free(param0->unk_20); - ov74_021D14E8(param0); - ov74_021D135C(param0); - break; - case 1: - SetMainCallback(NULL, NULL); - DisableHBlank(); - GXLayers_DisableEngineALayers(); - GXLayers_DisableEngineBLayers(); - - GX_SetVisiblePlane(0); - GXS_SetVisiblePlane(0); - param0->unk_08 = 0; - return 1; - } - - ++param0->unk_08; - return 0; -} - -static void ov74_021D12D4(UnkStruct_ov74_021D0D80 *param0) -{ - int v0; - - param0->unk_14 = BgConfig_New(param0->unk_00); - - { - GraphicsModes v1 = { - GX_DISPMODE_GRAPHICS, - GX_BGMODE_0, - GX_BGMODE_0, - GX_BG0_AS_2D - }; - - SetAllGraphicsModes(&v1); - } - - { - BgTemplate v2[] = { - { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0xf800, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 1, - 0, - 0, - 0, - }, - { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0xf000, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 2, - 0, - 0, - 0, - }, - { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0xe800, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 3, - 0, - 0, - 0, - }, - { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0xe000, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 0, - 0, - 0, - 0, - }, - { - 0, - 0, - 0x800, - 0, - 1, - GX_BG_COLORMODE_16, - GX_BG_SCRBASE_0xf800, - GX_BG_CHARBASE_0x00000, - GX_BG_EXTPLTT_01, - 0, - 0, - 0, - 0, - }, - }; - - for (v0 = 0; v0 < 5; v0++) { - static const v3[5] = { - 0, 1, 2, 3, 4 - }; - - Bg_InitFromTemplate(param0->unk_14, v3[v0], &(v2[v0]), 0); - Bg_ClearTilemap(param0->unk_14, v3[v0]); - } - } - Bg_ClearTilesRange(0, 32, 0, param0->unk_00); - Bg_ClearTilesRange(4, 32, 0, param0->unk_00); -} - -static void ov74_021D135C(UnkStruct_ov74_021D0D80 *param0) -{ - Bg_FreeTilemapBuffer(param0->unk_14, 4); - Bg_FreeTilemapBuffer(param0->unk_14, 3); - Bg_FreeTilemapBuffer(param0->unk_14, 2); - Bg_FreeTilemapBuffer(param0->unk_14, 1); - Bg_FreeTilemapBuffer(param0->unk_14, 0); - Heap_FreeToHeap(param0->unk_14); -} - -static void ov74_021D1390(UnkStruct_ov74_021D0D80 *param0) -{ - void *v0; - u32 v1; - NARC *v2; - void *v3; - NNSG2dCharacterData *v4; - NNSG2dPaletteData *v5; - - v2 = NARC_ctor(NARC_INDEX_GRAPHIC__CONFIG_GRA, param0->unk_00); - v1 = NARC_GetMemberSize(v2, 1); - v3 = Heap_AllocFromHeapAtEnd(param0->unk_00, v1); - - NARC_ReadWholeMember(v2, 1, (void *)v3); - NNS_G2dGetUnpackedCharacterData(v3, &v4); - Bg_LoadTiles(param0->unk_14, 0, v4->pRawData, v4->szByte, 0); - Bg_LoadTiles(param0->unk_14, 4, v4->pRawData, v4->szByte, 0); - Heap_FreeToHeap(v3); - - v1 = NARC_GetMemberSize(v2, 0); - v3 = Heap_AllocFromHeapAtEnd(param0->unk_00, v1); - NARC_ReadWholeMember(v2, 0, (void *)v3); - - NNS_G2dGetUnpackedPaletteData(v3, &v5); - Bg_LoadPalette(0, v5->pRawData, 0x20 * 1, 0); - Bg_LoadPalette(4, v5->pRawData, 0x20 * 1, 0); - Heap_FreeToHeap(v3); - - v1 = NARC_GetMemberSize(v2, 2); - param0->unk_24 = Heap_AllocFromHeap(param0->unk_00, v1); - - NARC_ReadWholeMember(v2, 2, (void *)param0->unk_24); - NNS_G2dGetUnpackedScreenData(param0->unk_24, &(param0->unk_28)); - NARC_dtor(v2); - Bg_FillTilemapRect(param0->unk_14, 2, 0x1, 0, 0, 32, 32, 17); - Bg_FillTilemapRect(param0->unk_14, 4, 0x1, 0, 0, 32, 32, 17); - Bg_CopyRectToTilemapRect(param0->unk_14, 0, 0, 0, 32, 2, param0->unk_28->rawData, 0, 0, param0->unk_28->screenWidth / 8, param0->unk_28->screenHeight / 8); - Bg_SetOffset(param0->unk_14, 0, 3, -24); - Bg_ScheduleTilemapTransfer(param0->unk_14, 2); - Bg_ScheduleTilemapTransfer(param0->unk_14, 0); - Bg_ScheduleTilemapTransfer(param0->unk_14, 4); -} - -static void ov74_021D14E8(UnkStruct_ov74_021D0D80 *param0) -{ - Heap_FreeToHeap(param0->unk_24); -} - -static void ov74_021D14F4(UnkStruct_ov74_021D0D80 *param0) -{ - Window_Add(param0->unk_14, ¶m0->unk_2C[0], 1, 1, 0, 12, 2, 13, 10); - Window_Add(param0->unk_14, ¶m0->unk_2C[1], 1, 1, 3, 30, 14, 13, (10 + 12 * 2)); - Window_Add(param0->unk_14, ¶m0->unk_2C[2], 1, 2, 19, 27, 4, 12, ((10 + 12 * 2) + 30 * 14)); - sub_0200DAA4(param0->unk_14, 1, (((10 + 12 * 2) + 30 * 14) + 27 * 4), 14, 0, param0->unk_00); - sub_0200DD0C(param0->unk_14, 1, ((((10 + 12 * 2) + 30 * 14) + 27 * 4) + 9), 15, param0->unk_18.unk_00_10, param0->unk_00); - - Font_LoadTextPalette(0, 13 * 32, param0->unk_00); - Font_LoadTextPalette(4, 13 * 32, param0->unk_00); - Font_LoadScreenIndicatorsPalette(0, 12 * 32, param0->unk_00); - Font_LoadScreenIndicatorsPalette(4, 12 * 32, param0->unk_00); - - Window_FillTilemap(&(param0->unk_2C[0]), WINCLR_COL(0)); - Window_FillTilemap(&(param0->unk_2C[1]), WINCLR_COL(15)); - Window_FillTilemap(&(param0->unk_2C[2]), WINCLR_COL(15)); - Window_ClearTilemap(&(param0->unk_2C[2])); - Window_ClearTilemap(&(param0->unk_2C[1])); - Window_ClearTilemap(&(param0->unk_2C[0])); - - Window_Show(¶m0->unk_2C[1], 1, (((10 + 12 * 2) + 30 * 14) + 27 * 4), 14); - sub_0200E060(¶m0->unk_2C[2], 1, ((((10 + 12 * 2) + 30 * 14) + 27 * 4) + 9), 15); -} - -static void ov74_021D1624(UnkStruct_ov74_021D0D80 *param0) -{ - u16 v0; - - Window_Clear(&(param0->unk_2C[1]), 0); - sub_0200E084(&(param0->unk_2C[2]), 0); - - for (v0 = 0; v0 < 3; v0++) { - Window_ClearAndCopyToVRAM(&(param0->unk_2C[v0])); - Window_FillTilemap(&(param0->unk_2C[v0]), 0); - Window_ClearTilemap(&(param0->unk_2C[v0])); - Window_Remove(¶m0->unk_2C[v0]); - } -} - -static void ov74_021D1668(UnkStruct_ov74_021D0D80 *param0) -{ - u32 v0, v1; - u16 v2; - TextColor v3, v4, v5; - Strbuf *v6; - Strbuf *v7; - static const u8 v8[7] = { - 3, - 6, - 4, - 5, - 7, - 8, - 42, - }; - - v5 = TEXT_COLOR(1, 2, 0); - v3 = TEXT_COLOR(1, 2, 15); - v4 = TEXT_COLOR(3, 4, 15); - v6 = Strbuf_Init(256, param0->unk_00); - - MessageLoader_GetStrbuf(param0->unk_20, 0, v6); - - v1 = 2; - Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[0], FONT_SYSTEM, v6, v1, 2, TEXT_SPEED_INSTANT, v5, NULL); - - v1 = 4; - - for (v2 = 0; v2 < 7; v2++) { - Strbuf_Clear(v6); - MessageLoader_GetStrbuf(param0->unk_20, v8[v2], v6); - Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[1], FONT_SYSTEM, v6, v1, 16 * v2, TEXT_SPEED_NO_TRANSFER, v3, NULL); - } - - for (v2 = 0; v2 < 7; v2++) { - ov74_021D17CC(param0, v2); - } - - ov74_021D1BE4(param0, 0, 1); - - Window_CopyToVRAM(¶m0->unk_2C[0]); - Window_CopyToVRAM(¶m0->unk_2C[1]); - - Strbuf_Free(v6); -} - -static void ov74_021D1720(UnkStruct_ov74_021D0D80 *param0) -{ - u16 v0, v1; - static const int v3[7] = { - 3, 2, 2, 2, 3, 20, 0 - }; - static const u8 v2[7] = { - 10, - 17, - 13, - 15, - 19, - 22, - 0, - }; - - for (v0 = 0; v0 < 7; v0++) { - param0->unk_5C[v0].unk_00 = v3[v0]; - - for (v1 = 0; v1 < v3[v0]; v1++) { - param0->unk_5C[v0].unk_04[v1] = MessageLoader_GetNewStrbuf(param0->unk_20, v2[v0] + v1); - } - } - - param0->unk_5C[0].unk_02 = param0->unk_18.unk_00_0; - param0->unk_5C[2].unk_02 = param0->unk_18.unk_00_6; - param0->unk_5C[3].unk_02 = param0->unk_18.unk_00_7; - param0->unk_5C[1].unk_02 = param0->unk_18.unk_00_4; - param0->unk_5C[4].unk_02 = param0->unk_18.unk_00_8; - param0->unk_5C[5].unk_02 = param0->unk_18.unk_00_10; -} - -static void ov74_021D17CC(UnkStruct_ov74_021D0D80 *param0, u16 param1) -{ - u32 v0, v1, v2; - u16 v3; - u8 v4; - s8 v5 = 0; - static const s8 v6[] = { 0, 0, 0, 0, 0, 0, 0 }; - - v0 = TEXT_COLOR(1, 2, 15); - v1 = TEXT_COLOR(3, 4, 15); - - Window_FillRectWithColor(&(param0->unk_2C[1]), WINCLR_COL(15), (12 * 8 + 4) + v6[param1], 0 + param1 * 16, (48 * 8), 16); - - if (param1 == 5) { - Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[1], FONT_SYSTEM, param0->unk_5C[param1].unk_04[param0->unk_5C[param1].unk_02], 1 * 48 + (12 * 8 + 4), 16 * param1 + 0, TEXT_SPEED_NO_TRANSFER, v1, NULL); - Window_CopyToVRAM(¶m0->unk_2C[1]); - param0->unk_10_21 = 1; - return; - } - - if (param1 == 1) { - sub_02004FB8(param0->unk_5C[param1].unk_02); - } else if (param1 == 4) { - Options_SetSystemButtonMode(NULL, param0->unk_5C[param1].unk_02); - } else if (param1 == 0) { - Options_SetTextSpeed(param0->unk_1C, param0->unk_5C[param1].unk_02); - ov74_021D1BE4(param0, param1, 0); - } - - v5 = 0; - - for (v3 = 0; v3 < param0->unk_5C[param1].unk_00; v3++) { - if (v3 == param0->unk_5C[param1].unk_02) { - v2 = v1; - } else { - v2 = v0; - } - - if (v3 == param0->unk_5C[param1].unk_00 - 1) { - v4 = TEXT_SPEED_NO_TRANSFER; - } else { - v4 = TEXT_SPEED_NO_TRANSFER; - } - - if (param1 == 4) { - Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[1], FONT_SYSTEM, param0->unk_5C[param1].unk_04[v3], (12 * 8 + 4) - 0 + v5, 16 * param1 + 0, v4, v2, NULL); - v5 += Font_CalcStrbufWidth(FONT_SYSTEM, param0->unk_5C[param1].unk_04[v3], 0) + 12; - } else { - Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[1], FONT_SYSTEM, param0->unk_5C[param1].unk_04[v3], v3 * 48 + (12 * 8 + 4) + v6[param1], 16 * param1 + 0, v4, v2, NULL); - } - } - - Window_CopyToVRAM(¶m0->unk_2C[1]); -} - -static void ov74_021D1968(UnkStruct_ov74_021D0D80 *param0, u16 param1, BOOL param2) -{ - u32 v0; - Strbuf *v1; - u8 v2; - - if (ov74_021D1A08(param0) == 0) { - Text_RemovePrinter(param0->unk_2AC); - } - - v2 = Options_TextFrameDelay(param0->unk_1C); - - Window_FillTilemap(&(param0->unk_2C[2]), 15); - - v0 = TEXT_COLOR(1, 2, 15); - v1 = Strbuf_Init(256, param0->unk_00); - - MessageLoader_GetStrbuf(param0->unk_20, param1, v1); - - if (param2 == 0) { - param0->unk_2AC = Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[2], FONT_MESSAGE, v1, 4, 0, v2, v0, NULL); - } else { - Text_AddPrinterWithParamsAndColor(¶m0->unk_2C[2], FONT_MESSAGE, v1, 4, 0, TEXT_SPEED_NO_TRANSFER, v0, NULL); - Window_ScheduleCopyToVRAM(¶m0->unk_2C[2]); - } - - Strbuf_Free(v1); -} - -static BOOL ov74_021D1A08(const UnkStruct_ov74_021D0D80 *param0) -{ - if (Text_IsPrinterActive(param0->unk_2AC) == 0) { - return 1; - } - - return 0; -} - -static void ov74_021D1A24(UnkStruct_ov74_021D0D80 *param0) -{ - UnkStruct_ov74_021D1720 *v0; - - v0 = &(param0->unk_5C[param0->unk_10_2]); - - if (param0->unk_10_2 != 6) { - if (gCoreSys.pressedKeys & PAD_KEY_RIGHT) { - v0->unk_02 = (v0->unk_02 + 1) % v0->unk_00; - ov74_021D17CC(param0, param0->unk_10_2); - Sound_PlayEffect(1500); - } else if (gCoreSys.pressedKeys & PAD_KEY_LEFT) { - v0->unk_02 = (v0->unk_02 + v0->unk_00 - 1) % v0->unk_00; - ov74_021D17CC(param0, param0->unk_10_2); - Sound_PlayEffect(1500); - } - } - - if (gCoreSys.pressedKeys & PAD_KEY_UP) { - param0->unk_10_2 = (param0->unk_10_2 + 7 - 1) % 7; - Bg_ScheduleScroll(param0->unk_14, 0, 3, -(param0->unk_10_2 * 16 + 24)); - ov74_021D1BE4(param0, param0->unk_10_2, 1); - Sound_PlayEffect(1500); - } else if (gCoreSys.pressedKeys & PAD_KEY_DOWN) { - param0->unk_10_2 = (param0->unk_10_2 + 1) % 7; - Bg_ScheduleScroll(param0->unk_14, 0, 3, -(param0->unk_10_2 * 16 + 24)); - ov74_021D1BE4(param0, param0->unk_10_2, 1); - Sound_PlayEffect(1500); - } -} - -static BOOL ov74_021D1B44(UnkStruct_ov74_021D0D80 *param0) -{ - if ((param0->unk_18.unk_00_0 != param0->unk_5C[0].unk_02) || (param0->unk_18.unk_00_6 != param0->unk_5C[2].unk_02) || (param0->unk_18.unk_00_7 != param0->unk_5C[3].unk_02) || (param0->unk_18.unk_00_4 != param0->unk_5C[1].unk_02) || (param0->unk_18.unk_00_8 != param0->unk_5C[4].unk_02) || (param0->unk_18.unk_00_10 != param0->unk_5C[5].unk_02)) { - return 1; - } - - return 0; -} - -static void ov74_021D1BA8(UnkStruct_ov74_021D0D80 *param0) -{ - static const WindowTemplate v0 = { - 3, 25, 13, 6, 4, 13, (((((10 + 12 * 2) + 30 * 14) + 27 * 4) + 9) + (18 + 12)) - }; - - param0->unk_2A8 = sub_02002100(param0->unk_14, &v0, (((10 + 12 * 2) + 30 * 14) + 27 * 4), 14, param0->unk_00); -} - -static u32 ov74_021D1BD0(UnkStruct_ov74_021D0D80 *param0) -{ - return sub_02002114(param0->unk_2A8, param0->unk_00); -} - -static void ov74_021D1BE4(UnkStruct_ov74_021D0D80 *param0, u16 param1, BOOL param2) -{ - static const u8 v0[7] = { - 43, - 46, - 44, - 45, - 47, - 48, - 52, - }; - - ov74_021D1968(param0, v0[param1], param2); -} diff --git a/src/overlay075/ov75_021D0D80.c b/src/overlay075/ov75_021D0D80.c index 750b1d767b..34ff30a567 100644 --- a/src/overlay075/ov75_021D0D80.c +++ b/src/overlay075/ov75_021D0D80.c @@ -3,7 +3,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" #include "struct_defs/sprite_template.h" @@ -22,21 +21,21 @@ #include "game_options.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "palette.h" #include "pokemon_icon.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200A784.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02014A84.h" #include "unk_02017728.h" @@ -88,7 +87,7 @@ typedef struct { NNSG2dScreenData *unk_3C; NNSG2dScreenData *unk_40; Window unk_44[6]; - UIControlData *unk_A4; + Menu *unk_A4; SpriteRenderer *unk_A8; SpriteGfxHandler *unk_AC; CellActorData *unk_B0[3]; @@ -266,7 +265,7 @@ static int ov75_021D0FA0(UnkStruct_ov75_021D1184 *param0) switch (param0->unk_08) { case 0: - sub_0200E060(¶m0->unk_44[5], 1, 1 + 9, UnkEnum_ov75_021D1598_06); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_44[5], 1, 1 + 9, UnkEnum_ov75_021D1598_06); Window_FillTilemap(&(param0->unk_44[5]), ((15 << 4) | 15)); v0 = Strbuf_Init((19 * 2 * 2), param0->unk_00); @@ -281,7 +280,7 @@ static int ov75_021D0FA0(UnkStruct_ov75_021D1184 *param0) return 0; } - sub_0200E084(¶m0->unk_44[5], 1); + Window_EraseMessageBox(¶m0->unk_44[5], 1); Window_ClearAndCopyToVRAM(&(param0->unk_44[5])); param0->unk_08 = 0; @@ -300,12 +299,12 @@ static void ov75_021D1040(UnkStruct_ov75_021D1184 *param0) 0, 25, 13, 6, 4, UnkEnum_ov75_021D1598_03, 555 }; - param0->unk_A4 = sub_02002100(param0->unk_18, &v0, 1, UnkEnum_ov75_021D1598_05, param0->unk_00); + param0->unk_A4 = Menu_MakeYesNoChoice(param0->unk_18, &v0, 1, UnkEnum_ov75_021D1598_05, param0->unk_00); } static int ov75_021D1064(UnkStruct_ov75_021D1184 *param0) { - switch (sub_02002114(param0->unk_A4, param0->unk_00)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_A4, param0->unk_00)) { case 0: return 1; case 0xfffffffe: @@ -324,7 +323,7 @@ static int ov75_021D108C(UnkStruct_ov75_021D1184 *param0) case 0: param0->unk_13 = 1; - sub_0200E060(¶m0->unk_44[5], 1, 1 + 9, UnkEnum_ov75_021D1598_06); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_44[5], 1, 1 + 9, UnkEnum_ov75_021D1598_06); Window_FillTilemap(&(param0->unk_44[5]), ((15 << 4) | 15)); v1 = Strbuf_Init((19 * 2 * 2), param0->unk_00); @@ -352,7 +351,7 @@ static int ov75_021D108C(UnkStruct_ov75_021D1184 *param0) return 0; } - sub_0200E084(¶m0->unk_44[5], 1); + Window_EraseMessageBox(¶m0->unk_44[5], 1); Window_ClearAndCopyToVRAM(&(param0->unk_44[5])); param0->unk_08 = 0; @@ -466,7 +465,7 @@ static void ov75_021D131C(void *param0) } if (v0->unk_A8 != NULL) { - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); } NNS_GfdDoVramTransfer(); @@ -706,8 +705,8 @@ static void ov75_021D1598(UnkStruct_ov75_021D1184 *param0) v8 = 0 + param0->unk_1C->unk_0F; v5 = NARC_ctor(NARC_INDEX_GRAPHIC__MAIL_GRA, param0->unk_00); - sub_0200DAA4(param0->unk_18, 0, 1, UnkEnum_ov75_021D1598_05, 0, param0->unk_00); - sub_0200DD0C(param0->unk_18, 0, 1 + 9, UnkEnum_ov75_021D1598_06, param0->unk_0A, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_18, 0, 1, UnkEnum_ov75_021D1598_05, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_18, 0, 1 + 9, UnkEnum_ov75_021D1598_06, param0->unk_0A, param0->unk_00); v1 = NARC_GetMemberSize(v5, v6); v2 = Heap_AllocFromHeapAtEnd(param0->unk_00, v1); @@ -864,13 +863,13 @@ static void ov75_021D1ADC(UnkStruct_ov75_021D1184 *param0) int v0 = 0, v1 = 0; SpriteTemplate v2; - sub_020397E4(); + DrawWifiConnectionIcon(); if (param0->unk_0C == 1) { return; } - sub_0201DBEC(32, param0->unk_00); + VRAMTransferManager_New(32, param0->unk_00); param0->unk_A8 = sub_0200C6E4(param0->unk_00); param0->unk_AC = sub_0200C704(param0->unk_A8); @@ -958,6 +957,6 @@ static void ov75_021D1CB8(UnkStruct_ov75_021D1184 *param0) sub_0200D0B0(param0->unk_A8, param0->unk_AC); sub_0200C8D4(param0->unk_A8); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } } diff --git a/src/overlay076/ov76_0223B870.c b/src/overlay076/ov76_0223B870.c index 4eb34f5e68..d4ea4dfc1d 100644 --- a/src/overlay076/ov76_0223B870.c +++ b/src/overlay076/ov76_0223B870.c @@ -10,7 +10,6 @@ #include "struct_defs/struct_020127E8.h" #include "struct_defs/struct_0202CA28.h" #include "struct_defs/struct_0207C690.h" -#include "struct_defs/struct_02081CF4.h" #include "overlay012/ov12_02225864.h" #include "overlay012/struct_ov12_02225F6C.h" @@ -29,22 +28,22 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "palette.h" #include "pokemon.h" #include "pokemon_icon.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "touch_screen.h" -#include "unk_02001AF4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" -#include "unk_02013A04.h" #include "unk_02014000.h" #include "unk_0201E86C.h" #include "unk_0202419C.h" @@ -444,7 +443,7 @@ void ov76_0223BF50(void) void ov76_0223BF74(BgConfig *param0, Window *param1, int param2, UnkStruct_ov76_0223DE00 *param3, int param4) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; int v1; int v2, v3, v4, v5, v6, v7; int v8[4]; @@ -493,7 +492,7 @@ void ov76_0223BF74(BgConfig *param0, Window *param1, int param2, UnkStruct_ov76_ Window_Init(param1); Window_Add(param0, param1, param2, v2, v3, v4, v5, 14, v6); - param3->unk_D4.unk_C8 = sub_02013A04(v7, 53); + param3->unk_D4.unk_C8 = StringList_New(v7, 53); { int v9; @@ -503,24 +502,24 @@ void ov76_0223BF74(BgConfig *param0, Window *param1, int param2, UnkStruct_ov76_ for (v9 = 0; v9 < v7; v9++) { v10 = MessageLoader_GetNewStrbuf(v11, Unk_ov76_0223EF3C[v8[v9]].unk_00); - sub_02013A6C(param3->unk_D4.unk_C8, v10, Unk_ov76_0223EF3C[v8[v9]].unk_04); + StringList_AddFromStrbuf(param3->unk_D4.unk_C8, v10, Unk_ov76_0223EF3C[v8[v9]].unk_04); Strbuf_Free(v10); } MessageLoader_Free(v11); } - v0.unk_00 = param3->unk_D4.unk_C8; - v0.unk_08 = 0; - v0.unk_04 = param1; - v0.unk_09 = 1; - v0.unk_0A = v7; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 1; + v0.choices = param3->unk_D4.unk_C8; + v0.fontID = FONT_SYSTEM; + v0.window = param1; + v0.xSize = 1; + v0.ySize = v7; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = TRUE; - Window_Show(param1, 1, (1 + (18 + 12)), 13); - param3->unk_D4.unk_CC = sub_02001B7C(&v0, 8, 0, 0, 53, PAD_BUTTON_B); + Window_DrawStandardFrame(param1, 1, (1 + (18 + 12)), 13); + param3->unk_D4.unk_CC = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 53, PAD_BUTTON_B); } void ov76_0223C0EC(int param0, s16 *param1, s16 *param2) @@ -879,12 +878,12 @@ void ov76_0223C80C(UnkStruct_ov76_0223DE00 *param0, int param1, int param2) if (v1 != 0xff) { v3 = param2 + 1; - Pokemon_SetValue(param0->unk_00->unk_04[v1], 162, (u8 *)&v3); + Pokemon_SetValue(param0->unk_00->unk_04[v1], MON_DATA_MAIL_ID, (u8 *)&v3); } if (v2 != 0xff) { v4 = param1 + 1; - Pokemon_SetValue(param0->unk_00->unk_04[v2], 162, (u8 *)&v4); + Pokemon_SetValue(param0->unk_00->unk_04[v2], MON_DATA_MAIL_ID, (u8 *)&v4); } v0 = param0->unk_04[param1].unk_00; @@ -923,19 +922,19 @@ void ov76_0223C8BC(UnkStruct_ov76_0223DE00 *param0) void ov76_0223C8EC(BgConfig *param0, PaletteData *param1, int param2) { - sub_0200DD0C(param0, 1, 1, 15, param2, 53); - PaletteData_LoadBufferFromFileStart(param1, 38, sub_0200DD08(param2), 53, 0, 0x20, 12 * 16); - sub_0200DAA4(param0, 1, (1 + (18 + 12)), 13, 0, 53); - PaletteData_LoadBufferFromFileStart(param1, 38, Window_FramePalette(), 53, 0, 0x20, 13 * 16); + LoadMessageBoxGraphics(param0, 1, 1, 15, param2, 53); + PaletteData_LoadBufferFromFileStart(param1, 38, GetMessageBoxPaletteNARCMember(param2), 53, 0, 0x20, 12 * 16); + LoadStandardWindowGraphics(param0, 1, (1 + (18 + 12)), 13, 0, 53); + PaletteData_LoadBufferFromFileStart(param1, 38, GetStandardWindowPaletteNARCMember(), 53, 0, 0x20, 13 * 16); PaletteData_LoadBufferFromFileStart(param1, 14, 7, 53, 0, 0x20, 14 * 16); } void ov76_0223C974(BgConfig *param0, PaletteData *param1, int param2) { - sub_0200DD0C(param0, 4, 1, 15, param2, 53); - PaletteData_LoadBufferFromFileStart(param1, 38, sub_0200DD08(param2), 53, 1, 0x20, 12 * 16); - sub_0200DAA4(param0, 4, (1 + (18 + 12)), 13, 0, 53); - PaletteData_LoadBufferFromFileStart(param1, 38, Window_FramePalette(), 53, 1, 0x20, 13 * 16); + LoadMessageBoxGraphics(param0, 4, 1, 15, param2, 53); + PaletteData_LoadBufferFromFileStart(param1, 38, GetMessageBoxPaletteNARCMember(param2), 53, 1, 0x20, 12 * 16); + LoadStandardWindowGraphics(param0, 4, (1 + (18 + 12)), 13, 0, 53); + PaletteData_LoadBufferFromFileStart(param1, 38, GetStandardWindowPaletteNARCMember(), 53, 1, 0x20, 13 * 16); PaletteData_LoadBufferFromFileStart(param1, 14, 7, 53, 1, 0x20, 14 * 16); PaletteData_LoadBufferFromFileStart(param1, 14, 7, 53, 1, 0x20, 3 * 16); PaletteData_LoadBufferFromFileStart(param1, 91, 294, 53, 1, 0x20, 11 * 16); @@ -966,7 +965,7 @@ void ov76_0223CA98(BgConfig *param0, Window *param1, int param2, int param3, int { Window_Init(param1); Window_Add(param0, param1, param2, param3, param4, param5, param6, 14, param7); - sub_0200E060(param1, 1, 1, 12); + Window_DrawMessageBoxWithScrollCursor(param1, 1, 1, 12); Window_FillTilemap(param1, 15); Window_CopyToVRAM(param1); } @@ -1093,12 +1092,12 @@ void ov76_0223CE2C(void) void ov76_0223CE44(void) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 53); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 53); } void ov76_0223CE64(void) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 53); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 53); } void ov76_0223CE84(UnkStruct_ov76_0223DE00 *param0, NARC *param1) diff --git a/src/overlay076/ov76_0223D338.c b/src/overlay076/ov76_0223D338.c index a2a8519087..6c5b6faca7 100644 --- a/src/overlay076/ov76_0223D338.c +++ b/src/overlay076/ov76_0223D338.c @@ -29,20 +29,20 @@ #include "game_records.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "narc.h" #include "palette.h" #include "pokemon.h" +#include "render_window.h" +#include "string_list.h" #include "sys_task.h" #include "sys_task_manager.h" #include "touch_screen.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200762C.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" -#include "unk_02013A04.h" #include "unk_02015920.h" #include "unk_02015F84.h" #include "unk_02017728.h" @@ -185,10 +185,10 @@ static void ov76_0223D494(UnkStruct_ov76_0223DE00 *param0, int param1, int param static int ov76_0223D4C4(UnkStruct_ov76_0223DE00 *param0) { - Window_Clear(¶m0->unk_D4.unk_18[1], 1); + Window_EraseStandardFrame(¶m0->unk_D4.unk_18[1], 1); Window_ClearAndCopyToVRAM(¶m0->unk_D4.unk_18[1]); - sub_02001BC4(param0->unk_D4.unk_CC, NULL); - sub_02013A3C(param0->unk_D4.unk_C8); + Menu_Free(param0->unk_D4.unk_CC, NULL); + StringList_Free(param0->unk_D4.unk_C8); Window_Remove(¶m0->unk_D4.unk_18[1]); return 1; @@ -350,7 +350,7 @@ static BOOL ov76_0223D674(UnkStruct_ov76_0223DE00 *param0) break; case 2: - if (ScreenWipe_Done() != 1) { + if (IsScreenTransitionDone() != 1) { break; } @@ -397,7 +397,7 @@ static BOOL ov76_0223D674(UnkStruct_ov76_0223DE00 *param0) } break; case 4: { UnkFuncPtr_ov76_0223D674 v4; - u32 v5 = sub_02001BE0(param0->unk_D4.unk_CC); + u32 v5 = Menu_ProcessInput(param0->unk_D4.unk_CC); switch (v5) { case 0xfffffffe: @@ -429,7 +429,7 @@ static BOOL ov76_0223D674(UnkStruct_ov76_0223DE00 *param0) param0->unk_3D4++; break; case 6: - if (ScreenWipe_Done() != 1) { + if (IsScreenTransitionDone() != 1) { break; } Window_Remove(¶m0->unk_D4.unk_18[0]); @@ -865,8 +865,8 @@ static BOOL ov76_0223DF94(UnkStruct_ov76_0223DE00 *param0) v1 = param0->unk_3C4[0] + 1; ov76_0223B848(&v2, param0); - Pokemon_SetValue(param0->unk_428, 162, (u8 *)&v1); - Pokemon_SetValue(param0->unk_428, 171, &v2); + Pokemon_SetValue(param0->unk_428, MON_DATA_MAIL_ID, (u8 *)&v1); + Pokemon_SetValue(param0->unk_428, MON_DATA_171, &v2); param0->unk_D4.unk_154 = ov12_02236004(53, &v3); ov12_02236320(param0->unk_D4.unk_154); @@ -993,7 +993,7 @@ static BOOL ov76_0223DF94(UnkStruct_ov76_0223DE00 *param0) if (param0->unk_264[param0->unk_3C4[0]].unk_00 != 0xff) { v8 = param0->unk_00->unk_04[param0->unk_264[param0->unk_3C4[0]].unk_00]; - Pokemon_SetValue(v8, 171, sub_0202CA28(param0->unk_00->unk_20, param0->unk_3C4[0])); + Pokemon_SetValue(v8, MON_DATA_171, sub_0202CA28(param0->unk_00->unk_20, param0->unk_3C4[0])); } } param0->unk_3D4 = 8; @@ -1051,7 +1051,7 @@ static BOOL ov76_0223DF94(UnkStruct_ov76_0223DE00 *param0) PaletteData_SetAutoTransparent(param0->unk_D4.unk_14, 1); sub_02015A54(param0->unk_D4.unk_150); sub_02015938(param0->unk_D4.unk_150); - sub_0200E084(¶m0->unk_D4.unk_18[2], 1); + Window_EraseMessageBox(¶m0->unk_D4.unk_18[2], 1); Window_ClearAndCopyToVRAM(¶m0->unk_D4.unk_18[2]); Window_Remove(¶m0->unk_D4.unk_18[2]); param0->unk_3DC++; @@ -1187,7 +1187,7 @@ static BOOL ov76_0223E8A4(UnkStruct_ov76_0223DE00 *param0) param0->unk_3D4++; break; case 2: - if (ScreenWipe_Done() != 1) { + if (IsScreenTransitionDone() != 1) { break; } @@ -1218,7 +1218,7 @@ void ov76_0223E91C(UnkStruct_ov76_0223DE00 *param0, int param1) v1 = param0->unk_04[param1].unk_00; if (v1 != 0xff) { - Pokemon_SetValue(param0->unk_00->unk_04[v1], 162, (u8 *)&v2); + Pokemon_SetValue(param0->unk_00->unk_04[v1], MON_DATA_MAIL_ID, (u8 *)&v2); } param0->unk_04[param1].unk_00 = 0xff; @@ -1503,7 +1503,7 @@ void ov76_0223ECB0(void *param0) sub_02008A94(v0->unk_D4.unk_D0); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_D4.unk_14); Bg_RunScheduledUpdates(v0->unk_D4.unk_10); diff --git a/src/overlay077/ov77_021D0D80.c b/src/overlay077/ov77_021D0D80.c index 80ba12924b..151e52f8ba 100644 --- a/src/overlay077/ov77_021D0D80.c +++ b/src/overlay077/ov77_021D0D80.c @@ -253,7 +253,7 @@ static int ov77_021D0E3C(OverlayManager *param0, int *param1) if ((gCoreSys.heldKeys & (PAD_BUTTON_B | PAD_KEY_UP | PAD_BUTTON_SELECT)) == (PAD_BUTTON_B | PAD_KEY_UP | PAD_BUTTON_SELECT)) { v0->unk_4E8 = 2; - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); *param1 = 6; break; } @@ -274,10 +274,10 @@ static int ov77_021D0E3C(OverlayManager *param0, int *param1) ov77_021D20E4(&v0->unk_238, v0->unk_04, v0->unk_00); if ((++v0->unk_4FC) == 10) { - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, v0->unk_00); } - if ((sub_0200598C() == 0) && (ScreenWipe_Done() == 1) && (v0->unk_4FC >= 10)) { + if ((sub_0200598C() == 0) && (IsScreenTransitionDone() == 1) && (v0->unk_4FC >= 10)) { sub_020055D0(1173, 0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 0); @@ -288,7 +288,7 @@ static int ov77_021D0E3C(OverlayManager *param0, int *param1) GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG1, 0); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG2, 0); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG3, 0); - sub_0200F174(0, 1, 1, 0x7fff, 6, 1, v0->unk_00); + StartScreenTransition(0, 1, 1, 0x7fff, 6, 1, v0->unk_00); *param1 = 6; } break; @@ -298,12 +298,12 @@ static int ov77_021D0E3C(OverlayManager *param0, int *param1) if (Sound_CheckFade() == 0) { sub_020055D0(1173, 0); - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, v0->unk_00); *param1 = 6; } break; case 6: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if (ov77_021D21C0(&v0->unk_238, v0->unk_04, v0->unk_00) == 1) { return 1; } @@ -1013,11 +1013,11 @@ static BOOL ov77_021D1DF0(UnkStruct_ov77_021D1568 *param0, BgConfig *param1, int GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1); param0->unk_296 = 0; param0->unk_22A = 15 + 252; - sub_0200F174(0, 1, 1, 0x0, 15, 3, param2); + StartScreenTransition(0, 1, 1, 0x0, 15, 3, param2); param0->unk_00 = 1; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if (param0->unk_22A) { param0->unk_22A--; } else { @@ -1057,9 +1057,9 @@ static BOOL ov77_021D1DF0(UnkStruct_ov77_021D1568 *param0, BgConfig *param1, int } break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if (param0->unk_22A) { - sub_0200F174(0, 0, 0, 0x7fff, 5, 2, param2); + StartScreenTransition(0, 0, 0, 0x7fff, 5, 2, param2); param0->unk_296 = 2; param0->unk_22A--; param0->unk_00 = 6; @@ -1072,13 +1072,13 @@ static BOOL ov77_021D1DF0(UnkStruct_ov77_021D1568 *param0, BgConfig *param1, int } break; case 6: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_2A0 = 0; { GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG1, 1); } param0->unk_04.unk_AC = 2; - sub_0200F174(3, 1, 1, 0x7fff, 16, 3, param2); + StartScreenTransition(3, 1, 1, 0x7fff, 16, 3, param2); param0->unk_00 = 5; } break; @@ -1090,7 +1090,7 @@ static BOOL ov77_021D1DF0(UnkStruct_ov77_021D1568 *param0, BgConfig *param1, int } break; case 7: - sub_0200F174(3, 1, 1, 0x0, 48, 1, param2); + StartScreenTransition(3, 1, 1, 0x0, 48, 1, param2); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, 1); param0->unk_00 = 9; param0->unk_2A4 = 0; @@ -1109,7 +1109,7 @@ static BOOL ov77_021D1DF0(UnkStruct_ov77_021D1568 *param0, BgConfig *param1, int { ov77_021D1CC0(param1, param2); } - sub_0200F174(4, 1, 1, 0x7fff, 16, 3, param2); + StartScreenTransition(4, 1, 1, 0x7fff, 16, 3, param2); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG3, 1); param0->unk_22A = 90; @@ -1120,7 +1120,7 @@ static BOOL ov77_021D1DF0(UnkStruct_ov77_021D1568 *param0, BgConfig *param1, int if (param0->unk_22A) { param0->unk_22A--; } else { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0 = 1; } } diff --git a/src/overlay077/ov77_021D25B0.c b/src/overlay077/ov77_021D25B0.c index bbf5058cb8..86552f2f19 100644 --- a/src/overlay077/ov77_021D25B0.c +++ b/src/overlay077/ov77_021D25B0.c @@ -1010,7 +1010,7 @@ static int ov77_021D2E60(OverlayManager *param0, int *param1) { UnkStruct_ov77_021D2E9C *v0 = OverlayManager_Data(param0); - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { sub_0200F2C0(); } @@ -1153,12 +1153,12 @@ static BOOL ov77_021D30D0(UnkStruct_ov77_021D2F38 *param0, const int param1) break; case 4: if ((param0->unk_08) && (param1 >= 490)) { - sub_0200F174(2, 0, 0, 0x0, 18, 1, 76); + StartScreenTransition(2, 0, 0, 0x0, 18, 1, 76); (*v0)++; } break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } @@ -1871,14 +1871,14 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 break; case 2: if (param2 == 785) { - sub_0200F174(3, 0, 0, 0x7fff, 4, 1, 76); + StartScreenTransition(3, 0, 0, 0x7fff, 4, 1, 76); } if (param2 == (785 + 5)) { - GF_ASSERT(ScreenWipe_Done() == 1); + GF_ASSERT(IsScreenTransitionDone() == 1); param1->unk_247 = (1 << 2); param1->unk_248 = (1 << 3); - sub_0200F174(3, 1, 1, 0x7fff, 4, 1, 76); + StartScreenTransition(3, 1, 1, 0x7fff, 4, 1, 76); } if (param2 == 945 - 1) { @@ -1895,7 +1895,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 if (param2 >= 975) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1); - sub_0200F174(3, 1, 1, 0x7fff, 18, 1, 76); + StartScreenTransition(3, 1, 1, 0x7fff, 18, 1, 76); param1->unk_08 = 16; (*v0)++; } @@ -1918,7 +1918,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D61B8(param1->unk_14, param2); if (param2 >= 1576) { - sub_0200F174(0, 0, 0, 0x7fff, 18, 1, 76); + StartScreenTransition(0, 0, 0, 0x7fff, 18, 1, 76); (*v0)++; } } @@ -1930,7 +1930,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D60E0(param1->unk_14, param2); ov77_021D61B8(param1->unk_14, param2); - if (ScreenWipe_Done() && (param2 >= 1600)) { + if (IsScreenTransitionDone() && (param2 >= 1600)) { Bg_ToggleLayer(4, 0); ov77_021D6000(param1->unk_14, param1->unk_18); param1->unk_244 = 1; @@ -1972,7 +1972,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 G2_BlendNone(); G2S_BlendNone(); - sub_0200F174(0, 1, 1, 0x7fff, 18, 1, 76); + StartScreenTransition(0, 1, 1, 0x7fff, 18, 1, 76); (*v0)++; } break; @@ -1980,7 +1980,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D4B70(param1); ov77_021D607C(param1->unk_14); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (param2 >= (62 * 30 - 15 - 15)) { Bg_ScheduleScroll(param1->unk_10, 3, 0, 0); Bg_ScheduleScroll(param1->unk_10, 3, 3, 256); @@ -2005,7 +2005,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D4C04(param1, param2); if (param2 == (64 * 30 - 15 - 15 - 45)) { - sub_0200F174(0, 0, 0, 0x0, 4, 1, 76); + StartScreenTransition(0, 0, 0, 0x0, 4, 1, 76); (*v0)++; } break; @@ -2013,14 +2013,14 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D4BE4(param1); ov77_021D4C04(param1, param2); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param1->unk_247 = (1 << 1) | (1 << 5); param1->unk_248 = (1 << 2) | (1 << 6); Bg_ScheduleScroll(param1->unk_10, 1, 0, 0); Bg_ScheduleScroll(param1->unk_10, 1, 3, 0); Bg_ScheduleScroll(param1->unk_10, 5, 0, 0); Bg_ScheduleScroll(param1->unk_10, 5, 3, 0); - sub_0200F174(0, 1, 1, 0x0, 4, 1, 76); + StartScreenTransition(0, 1, 1, 0x0, 4, 1, 76); (*v0)++; } break; @@ -2029,7 +2029,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D4C04(param1, param2); ov77_021D6470(param1->unk_14, param2); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (param2 == (65 * 30 - 15 - 15 - 45 - 15)) { Bg_ScheduleScroll(param1->unk_10, 1, 0, 0); Bg_ScheduleScroll(param1->unk_10, 1, 3, 256); @@ -2038,7 +2038,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D603C(param1->unk_14, 11, 1); ov77_021D603C(param1->unk_14, 12, 1); } else if (param2 >= (1935 - 15)) { - sub_0200F174(0, 0, 0, 0x7fff, 4, 1, 76); + StartScreenTransition(0, 0, 0, 0x7fff, 4, 1, 76); (*v0)++; } } @@ -2046,8 +2046,8 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 case 9: ov77_021D6470(param1->unk_14, param2); - if (ScreenWipe_Done()) { - sub_0200F174(0, 1, 1, 0x7fff, 64, 1, 76); + if (IsScreenTransitionDone()) { + StartScreenTransition(0, 1, 1, 0x7fff, 64, 1, 76); ov77_021D603C(param1->unk_14, 11, 0); ov77_021D603C(param1->unk_14, 12, 0); ov77_021D603C(param1->unk_14, 13, 1); @@ -2070,9 +2070,9 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); ov77_021D4DC8(param1, param2); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (param2 >= (1995 + 15)) { - sub_0200F174(3, 0, 0, 0x0, 4, 1, 76); + StartScreenTransition(3, 0, 0, 0x0, 4, 1, 76); (*v0)++; } } @@ -2080,19 +2080,19 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 case 11: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { G2_SetBlendAlpha(GX_BLEND_PLANEMASK_NONE, GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD, 0, 0); MI_CpuClear16((void *)HW_BG_PLTT, 0x200); - sub_0200F174(3, 1, 1, 0x0, 4, 1, 76); + StartScreenTransition(3, 1, 1, 0x0, 4, 1, 76); (*v0)++; } break; case 12: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (ov77_021D6E78(param1->unk_1C, 0, param2)) { - sub_0200F174(0, 0, 0, 0x0, 4, 1, 76); + StartScreenTransition(0, 0, 0, 0x0, 4, 1, 76); (*v0)++; } } @@ -2100,13 +2100,13 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 case 13: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (1) { gCoreSys.unk_65 = 1; GXLayers_SwapDisplay(); ov77_021D3DC4(param1); - sub_0200F174(0, 1, 1, 0x0, 4, 1, 76); + StartScreenTransition(0, 1, 1, 0x0, 4, 1, 76); (*v0)++; } } @@ -2114,10 +2114,10 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 case 14: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (param2 >= (2085 + 15 + 30)) { if (ov77_021D6E78(param1->unk_1C, 1, param2)) { - sub_0200F174(0, 0, 0, 0x0, 4, 1, 76); + StartScreenTransition(0, 0, 0, 0x0, 4, 1, 76); param1->unk_0C = 0; (*v0)++; } @@ -2127,7 +2127,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 case 15: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { MI_CpuCopy16(param1->unk_240, (void *)HW_BG_PLTT, 0x200); gCoreSys.unk_65 = 0; @@ -2143,22 +2143,22 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 Bg_ScheduleScroll(param1->unk_10, 5, 0, 60); Bg_ScheduleScroll(param1->unk_10, 6, 0, 60); Bg_ScheduleScroll(param1->unk_10, 7, 0, 60); - sub_0200F174(3, 1, 1, 0x0, 16, 1, 76); + StartScreenTransition(3, 1, 1, 0x0, 16, 1, 76); (*v0)++; } break; case 16: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { - sub_0200F174(4, 1, 1, 0x0, 16, 1, 76); + if (IsScreenTransitionDone()) { + StartScreenTransition(4, 1, 1, 0x0, 16, 1, 76); (*v0)++; } break; case 17: ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (param2 >= (2200 + 15)) { ov77_021D4E90(param1); } @@ -2166,7 +2166,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 if (param2 >= ((2200 + 15) + 1)) { param1->unk_247 |= (1 << 0) | (1 << 4); - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, 76); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, 76); (*v0)++; } } @@ -2175,7 +2175,7 @@ static BOOL ov77_021D4230(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 ov77_021D4E90(param1); ov77_021D6290(param1->unk_14, (16 << FX32_SHIFT)); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { gCoreSys.unk_65 = 1; GXLayers_SwapDisplay(); (*v0)++; @@ -2452,10 +2452,10 @@ static void ov77_021D513C(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 switch (param2) { case (40 * 30 - 15): - sub_0200F174(3, 0, 0, 0x0, 4, 1, 76); + StartScreenTransition(3, 0, 0, 0x0, 4, 1, 76); break; case ((40 * 30 - 15) + 6): - GF_ASSERT(ScreenWipe_Done() == 1); + GF_ASSERT(IsScreenTransitionDone() == 1); ov77_021D35B8(param0); ov77_021D40DC(param1, 1); break; @@ -2468,16 +2468,16 @@ static void ov77_021D513C(UnkStruct_ov77_021D2E9C *param0, UnkStruct_ov77_021D37 case (((40 * 30 - 15) + 6) + 3): v0 = ov77_021D40DC(param1, 1); GF_ASSERT(v0 == 1); - sub_0200F174(3, 1, 1, 0x0, 4, 1, 76); + StartScreenTransition(3, 1, 1, 0x0, 4, 1, 76); break; case (47 * 30 - 15): - sub_0200F174(3, 0, 0, 0x0, 4, 1, 76); + StartScreenTransition(3, 0, 0, 0x0, 4, 1, 76); break; case ((47 * 30 - 15) + 6): - GF_ASSERT(ScreenWipe_Done() == 1); + GF_ASSERT(IsScreenTransitionDone() == 1); ov77_021D35B8(param0); ov77_021D40B8(param1, 2); - sub_0200F174(3, 1, 1, 0x0, 4, 1, 76); + StartScreenTransition(3, 1, 1, 0x0, 4, 1, 76); break; } } @@ -2555,31 +2555,31 @@ static BOOL ov77_021D5390(UnkStruct_ov77_021D5308 *param0, const int param1) switch (*v0) { case 0: if (param1 >= (2285 - 15 - 65)) { - sub_0200F174(0, 1, 1, 0x7fff, 30, 1, 76); + StartScreenTransition(0, 1, 1, 0x7fff, 30, 1, 76); (*v0)++; } break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); - sub_0200F174(0, 1, 1, 0x0, 90, 1, 76); + StartScreenTransition(0, 1, 1, 0x0, 90, 1, 76); (*v0)++; } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*v0)++; } break; case 3: if (param1 >= (2500 - 15 - 65)) { - sub_0200F174(0, 0, 0, 0x0, 8, 1, 76); + StartScreenTransition(0, 0, 0, 0x0, 8, 1, 76); (*v0)++; } break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } diff --git a/src/overlay077/ov77_021D54B0.c b/src/overlay077/ov77_021D54B0.c index 5f19c23737..ec58775e9f 100644 --- a/src/overlay077/ov77_021D54B0.c +++ b/src/overlay077/ov77_021D54B0.c @@ -104,7 +104,7 @@ static void ov77_021D54B0() sub_0201F834(11, v0); sub_0201E994(); sub_0201F8E4(); - sub_0201DBEC((3 * 2), v0); + VRAMTransferManager_New((3 * 2), v0); } static void ov77_021D54E8(const int param0, UnkStruct_ov77_021D5564 *param1, const int param2, CellActorInitParamsEx *param3, CellActorResourceData *param4, int param5, int param6) @@ -231,7 +231,7 @@ void ov77_021D5BAC(UnkStruct_ov77_021D5564 *param0) sub_0200A878(); sub_0201E958(); sub_0201F8B4(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } void ov77_021D5C3C(UnkStruct_ov77_021D5564 *param0) diff --git a/src/overlay079/ov79_021D0D80.c b/src/overlay079/ov79_021D0D80.c index 52d6cc5b44..1dd53dae75 100644 --- a/src/overlay079/ov79_021D0D80.c +++ b/src/overlay079/ov79_021D0D80.c @@ -18,18 +18,18 @@ #include "game_options.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "touch_screen.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020158A8.h" #include "unk_02017728.h" @@ -144,12 +144,12 @@ static int ov79_021D0E1C(UnkStruct_ov79_021D0E1C *param0) } param0->unk_0C = 0; - sub_0200F174(0, 1, 1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param0->unk_00); break; case 2: ov79_021D21F8(param0); - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return 0; } break; @@ -161,12 +161,12 @@ static int ov79_021D0E1C(UnkStruct_ov79_021D0E1C *param0) } param0->unk_0C = 0; - sub_0200F174(0, 0, 0, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param0->unk_00); break; case 4: ov79_021D21F8(param0); - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return 0; } break; @@ -198,7 +198,7 @@ static void ov79_021D0F7C(void *param0) UnkStruct_ov79_021D0E1C *v0 = (UnkStruct_ov79_021D0E1C *)param0; if (v0->unk_1B8 != NULL) { - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); } sub_0201DCAC(); @@ -251,7 +251,7 @@ static int ov79_021D0FEC(UnkStruct_ov79_021D0E1C *param0) if (gCoreSys.heldKeys != 0) { if (param0->unk_14 == 0) { - v0 = sub_02001288(param0->unk_C4); + v0 = ListMenu_ProcessInput(param0->unk_C4); } } else { if (v1 >= 0) { @@ -307,7 +307,7 @@ static int ov79_021D10B8(UnkStruct_ov79_021D0E1C *param0) { u32 v0; - v0 = sub_02001288(param0->unk_C8); + v0 = ListMenu_ProcessInput(param0->unk_C8); if (gCoreSys.pressedKeys & PAD_BUTTON_B) { Sound_PlayEffect(1500); @@ -355,7 +355,7 @@ static int ov79_021D114C(UnkStruct_ov79_021D0E1C *param0) static int ov79_021D116C(UnkStruct_ov79_021D0E1C *param0) { - switch (sub_02002114(param0->unk_D4, param0->unk_00)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_D4, param0->unk_00)) { case 0: Sound_PlayEffect(1500); ov79_021D2008(param0); @@ -363,7 +363,7 @@ static int ov79_021D116C(UnkStruct_ov79_021D0E1C *param0) return 0; case 0xfffffffe: Sound_PlayEffect(1500); - sub_0200E084(¶m0->unk_E8[2], 0); + Window_EraseMessageBox(¶m0->unk_E8[2], 0); param0->unk_18 = 1; return 0; } @@ -381,7 +381,7 @@ static int ov79_021D11C0(UnkStruct_ov79_021D0E1C *param0) return 0; } - sub_0200E084(¶m0->unk_E8[2], 1); + Window_EraseMessageBox(¶m0->unk_E8[2], 1); Window_ClearAndCopyToVRAM(¶m0->unk_E8[2]); param0->unk_20->unk_1C[param0->unk_1A].unk_04_val1_6 = 1; @@ -655,8 +655,8 @@ static void ov79_021D14A4(UnkStruct_ov79_021D0E1C *param0) { 0x4, 0xC, 0xD, 0x8, 0x3, 0xA, 0xB9 } }; - sub_0200DAA4(param0->unk_24, 1, 1 + 18 + 12, 15, 0, param0->unk_00); - sub_0200DD0C(param0->unk_24, 1, 1, 14, Options_Frame(param0->unk_20->unk_18), param0->unk_00); + LoadStandardWindowGraphics(param0->unk_24, 1, 1 + 18 + 12, 15, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_24, 1, 1, 14, Options_Frame(param0->unk_20->unk_18), param0->unk_00); Font_LoadTextPalette(0, 13 * 32, param0->unk_00); Font_LoadScreenIndicatorsPalette(0, 12 * 32, param0->unk_00); Font_LoadTextPalette(4, 13 * 32, param0->unk_00); diff --git a/src/overlay079/ov79_021D183C.c b/src/overlay079/ov79_021D183C.c index 463dcc2721..4d2a79ca93 100644 --- a/src/overlay079/ov79_021D183C.c +++ b/src/overlay079/ov79_021D183C.c @@ -3,34 +3,32 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" #include "struct_defs/struct_0203D9B8.h" #include "struct_defs/struct_020989DC.h" #include "overlay079/struct_ov79_021D0E1C.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bg_window.h" #include "cell_actor.h" #include "font.h" +#include "list_menu.h" +#include "menu.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_020158A8.h" #include "unk_02098FFC.h" -static void ov79_021D1D88(BmpList *param0, u32 param1, u8 param2); -static void ov79_021D1D94(BmpList *param0, u32 param1, u8 param2); -static void ov79_021D1FA8(BmpList *param0, u32 param1, u8 param2); +static void ov79_021D1D88(ListMenu *param0, u32 param1, u8 param2); +static void ov79_021D1D94(ListMenu *param0, u32 param1, u8 param2); +static void ov79_021D1FA8(ListMenu *param0, u32 param1, u8 param2); -static const UnkStruct_ov84_02240FA8 Unk_ov79_021D3BB0 = { +static const ListMenuTemplate Unk_ov79_021D3BB0 = { NULL, ov79_021D1D94, ov79_021D1D88, @@ -52,7 +50,7 @@ static const UnkStruct_ov84_02240FA8 Unk_ov79_021D3BB0 = { NULL }; -static const UnkStruct_ov84_02240FA8 Unk_ov79_021D3B90 = { +static const ListMenuTemplate Unk_ov79_021D3B90 = { NULL, ov79_021D1FA8, NULL, @@ -85,7 +83,7 @@ static void ov79_021D1850(UnkStruct_ov79_021D0E1C *param0, Strbuf *param1, u8 pa u32 v0 = TEXT_COLOR(1, 2, 15); if (param3) { - sub_0200E060(¶m0->unk_E8[2], 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_E8[2], 1, 1, 14); } Window_FillRectWithColor(&(param0->unk_E8[2]), ((15 << 4) | 15), 0, 0, 27 * 8, 4 * 8); @@ -151,7 +149,7 @@ void ov79_021D196C(UnkStruct_ov79_021D0E1C *param0) UnkStruct_020989DC *v2; param0->unk_1C = ov79_021D18B4(param0->unk_20, param0); - param0->unk_CC = sub_02013A04(param0->unk_1C, param0->unk_00); + param0->unk_CC = StringList_New(param0->unk_1C, param0->unk_00); for (v0 = param0->unk_1E; v0 != 0xFF; v0 = v1) { v2 = &(param0->unk_20->unk_1C[v0]); @@ -160,11 +158,11 @@ void ov79_021D196C(UnkStruct_ov79_021D0E1C *param0) StringTemplate_SetStrbuf(param0->unk_30.unk_00, 0, sub_02015918(param0->unk_28, v2->unk_02), 0, 0, GAME_LANGUAGE); StringTemplate_SetNumber(param0->unk_30.unk_00, 1, v2->unk_01, 2, 2, 1); StringTemplate_Format(param0->unk_30.unk_00, param0->unk_30.unk_04, param0->unk_30.unk_0C); - sub_02013A6C(param0->unk_CC, param0->unk_30.unk_04, v2->unk_05); + StringList_AddFromStrbuf(param0->unk_CC, param0->unk_30.unk_04, v2->unk_05); } - sub_02013A6C(param0->unk_CC, param0->unk_30.unk_08, 0xFF); - MI_CpuCopy8(&Unk_ov79_021D3BB0, ¶m0->unk_84, sizeof(UnkStruct_ov84_02240FA8)); + StringList_AddFromStrbuf(param0->unk_CC, param0->unk_30.unk_08, 0xFF); + MI_CpuCopy8(&Unk_ov79_021D3BB0, ¶m0->unk_84, sizeof(ListMenuTemplate)); param0->unk_82 = param0->unk_20->unk_06; param0->unk_80 = param0->unk_20->unk_04; @@ -183,12 +181,12 @@ void ov79_021D196C(UnkStruct_ov79_021D0E1C *param0) param0->unk_20->unk_02 = 0; } - param0->unk_84.unk_0C = &(param0->unk_E8[0]); - param0->unk_84.unk_00 = param0->unk_CC; - param0->unk_84.unk_1C = (void *)param0; - param0->unk_84.unk_10 = param0->unk_1C; + param0->unk_84.window = &(param0->unk_E8[0]); + param0->unk_84.choices = param0->unk_CC; + param0->unk_84.tmp = (void *)param0; + param0->unk_84.count = param0->unk_1C; param0->unk_16 = 0; - param0->unk_C4 = sub_0200112C(¶m0->unk_84, param0->unk_80, param0->unk_82, param0->unk_00); + param0->unk_C4 = ListMenu_New(¶m0->unk_84, param0->unk_80, param0->unk_82, param0->unk_00); param0->unk_16 = 1; } @@ -200,8 +198,8 @@ void ov79_021D1AB8(UnkStruct_ov79_021D0E1C *param0, BOOL param1) Window_ClearAndCopyToVRAM(¶m0->unk_E8[0]); } - sub_02001384(param0->unk_C4, &(param0->unk_80), &(param0->unk_82)); - sub_02013A3C(param0->unk_CC); + ListMenu_Free(param0->unk_C4, &(param0->unk_80), &(param0->unk_82)); + StringList_Free(param0->unk_CC); param0->unk_20->unk_04 = param0->unk_80; param0->unk_20->unk_06 = param0->unk_82; @@ -304,17 +302,17 @@ static void ov79_021D1D20(UnkStruct_ov79_021D0E1C *param0, UnkStruct_020989DC *p } } -static void ov79_021D1D88(BmpList *param0, u32 param1, u8 param2) +static void ov79_021D1D88(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov79_021D0E1C *v0 = (UnkStruct_ov79_021D0E1C *)sub_02001504(param0, 19); + UnkStruct_ov79_021D0E1C *v0 = (UnkStruct_ov79_021D0E1C *)ListMenu_GetAttribute(param0, 19); TextColor v1; v1 = TEXT_COLOR(1, 2, 0); } -static void ov79_021D1D94(BmpList *param0, u32 param1, u8 param2) +static void ov79_021D1D94(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov79_021D0E1C *v0 = (UnkStruct_ov79_021D0E1C *)sub_02001504(param0, 19); + UnkStruct_ov79_021D0E1C *v0 = (UnkStruct_ov79_021D0E1C *)ListMenu_GetAttribute(param0, 19); TextColor v1; u16 v2, v3; u8 v4 = 0; @@ -325,7 +323,7 @@ static void ov79_021D1D94(BmpList *param0, u32 param1, u8 param2) Sound_PlayEffect(1500); } - sub_020014DC(param0, &v2, &v3); + ListMenu_GetListAndCursorPos(param0, &v2, &v3); SpriteActor_SetPositionXY(v0->unk_1C0[0], 105, v3 * 16 + 40); if (v2 == 0) { @@ -369,39 +367,39 @@ void ov79_021D1ED8(UnkStruct_ov79_021D0E1C *param0) { u8 v0 = 0; - param0->unk_D0 = sub_02013A04(3, param0->unk_00); + param0->unk_D0 = StringList_New(3, param0->unk_00); for (v0 = 0; v0 < 3; v0++) { - sub_02013A4C(param0->unk_D0, param0->unk_2C, 1 + v0, v0); + StringList_AddFromMessageBank(param0->unk_D0, param0->unk_2C, 1 + v0, v0); } - MI_CpuCopy8(&Unk_ov79_021D3B90, ¶m0->unk_A4, sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8(&Unk_ov79_021D3B90, ¶m0->unk_A4, sizeof(ListMenuTemplate)); - param0->unk_A4.unk_0C = &(param0->unk_E8[3]); - param0->unk_A4.unk_00 = param0->unk_D0; - param0->unk_A4.unk_1C = (void *)param0; - param0->unk_A4.unk_10 = 3; + param0->unk_A4.window = &(param0->unk_E8[3]); + param0->unk_A4.choices = param0->unk_D0; + param0->unk_A4.tmp = (void *)param0; + param0->unk_A4.count = 3; - Window_Show(¶m0->unk_E8[3], 1, 1 + 18 + 12, 15); + Window_DrawStandardFrame(¶m0->unk_E8[3], 1, 1 + 18 + 12, 15); - param0->unk_C8 = sub_0200112C(¶m0->unk_A4, 0, 0, param0->unk_00); + param0->unk_C8 = ListMenu_New(¶m0->unk_A4, 0, 0, param0->unk_00); } void ov79_021D1F60(UnkStruct_ov79_021D0E1C *param0) { u16 v0, v1; - Window_Clear(&(param0->unk_E8[3]), 0); + Window_EraseStandardFrame(&(param0->unk_E8[3]), 0); Window_ClearAndCopyToVRAM(¶m0->unk_E8[3]); - sub_02001384(param0->unk_C8, &v1, &v0); - sub_02013A3C(param0->unk_D0); + ListMenu_Free(param0->unk_C8, &v1, &v0); + StringList_Free(param0->unk_D0); param0->unk_C8 = NULL; param0->unk_D0 = NULL; } -static void ov79_021D1FA8(BmpList *param0, u32 param1, u8 param2) +static void ov79_021D1FA8(ListMenu *param0, u32 param1, u8 param2) { if (!param2) { Sound_PlayEffect(1500); @@ -432,7 +430,7 @@ void ov79_021D2054(UnkStruct_ov79_021D0E1C *param0) 1, 26, 13, 5, 4, 13, 463 }; - param0->unk_D4 = sub_02002100(param0->unk_24, &v0, 1 + 18 + 12, 15, param0->unk_00); + param0->unk_D4 = Menu_MakeYesNoChoice(param0->unk_24, &v0, 1 + 18 + 12, 15, param0->unk_00); } void ov79_021D2078(UnkStruct_ov79_021D0E1C *param0) diff --git a/src/overlay079/ov79_021D20F4.c b/src/overlay079/ov79_021D20F4.c index d0c280429b..8fa54b03c8 100644 --- a/src/overlay079/ov79_021D20F4.c +++ b/src/overlay079/ov79_021D20F4.c @@ -23,7 +23,7 @@ void ov79_021D21F8(UnkStruct_ov79_021D0E1C *param0); void ov79_021D20F4(UnkStruct_ov79_021D0E1C *param0) { - sub_0201DBEC(32, param0->unk_00); + VRAMTransferManager_New(32, param0->unk_00); param0->unk_1B8 = sub_0200C6E4(param0->unk_00); param0->unk_1BC = sub_0200C704(param0->unk_1B8); @@ -83,7 +83,7 @@ void ov79_021D21CC(UnkStruct_ov79_021D0E1C *param0) sub_0209903C(param0->unk_1F8); sub_0200C8B0(param0->unk_1B8, param0->unk_1BC); sub_0200C8D4(param0->unk_1B8); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } void ov79_021D21F8(UnkStruct_ov79_021D0E1C *param0) diff --git a/src/overlay079/ov79_021D2268.c b/src/overlay079/ov79_021D2268.c index e71d95e1b4..a7f6bcb6f1 100644 --- a/src/overlay079/ov79_021D2268.c +++ b/src/overlay079/ov79_021D2268.c @@ -29,6 +29,7 @@ #include "narc.h" #include "overlay_manager.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -38,7 +39,6 @@ #include "unk_0200762C.h" #include "unk_0200A784.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201D15C.h" @@ -222,10 +222,10 @@ int ov79_021D22E4(OverlayManager *param0, int *param1) } v0->unk_04 = 0; - sub_0200F174(0, 1, 1, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, v0->unk_00); break; case 3: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return 0; } @@ -235,10 +235,10 @@ int ov79_021D22E4(OverlayManager *param0, int *param1) return 0; } - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); break; case 5: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return 0; } @@ -332,7 +332,7 @@ static void ov79_021D252C(void *param0) Bg_RunScheduledUpdates(v0->unk_68); sub_02008A94(v0->unk_40.unk_04); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); sub_0201DCAC(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); @@ -475,7 +475,7 @@ static void ov79_021D270C(UnkStruct_ov79_021D2928 *param0) Window_AddFromTemplate(param0->unk_68, &(param0->unk_6C), &v0); Window_FillTilemap(¶m0->unk_6C, ((0 << 4) | 0)); - sub_0200DD0C(param0->unk_68, 1, 1, 14, param0->unk_10->unk_0B, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_68, 1, 1, 14, param0->unk_10->unk_0B, param0->unk_00); Font_LoadScreenIndicatorsPalette(0, 15 * 32, param0->unk_00); } @@ -532,7 +532,7 @@ static void ov79_021D2858(UnkStruct_ov79_021D2928 *param0) static void ov79_021D2864(UnkStruct_ov79_021D2928 *param0) { - sub_0201DBEC(32, param0->unk_00); + VRAMTransferManager_New(32, param0->unk_00); param0->unk_7C = sub_0200C6E4(param0->unk_00); @@ -576,7 +576,7 @@ static void ov79_021D2908(UnkStruct_ov79_021D2928 *param0) sub_02099370(param0->unk_5C, param0->unk_60[0]); sub_0209903C(param0->unk_5C); sub_0200C8D4(param0->unk_7C); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } static int ov79_021D2928(UnkStruct_ov79_021D2928 *param0) @@ -732,7 +732,7 @@ static int ov79_021D2B84(UnkStruct_ov79_021D2928 *param0, UnkStruct_ov79_021D29B static int ov79_021D2B94(UnkStruct_ov79_021D2928 *param0) { - sub_0200E060(¶m0->unk_6C, 1, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_6C, 1, 1, 14); Window_FillTilemap(¶m0->unk_6C, ((15 << 4) | 15)); Strbuf_Clear(param0->unk_1C.unk_04); StringTemplate_SetStrbuf(param0->unk_1C.unk_00, 0, param0->unk_30.unk_0C, 2, 1, GAME_LANGUAGE); @@ -754,7 +754,7 @@ static int ov79_021D2C08(UnkStruct_ov79_021D2928 *param0) return 7; } - sub_0200E084(¶m0->unk_6C, 1); + Window_EraseMessageBox(¶m0->unk_6C, 1); Window_ClearAndCopyToVRAM(¶m0->unk_6C); return 8; diff --git a/src/overlay080/ov80_021D0D80.c b/src/overlay080/ov80_021D0D80.c index 2ae18132cb..f5b425d3fd 100644 --- a/src/overlay080/ov80_021D0D80.c +++ b/src/overlay080/ov80_021D0D80.c @@ -496,7 +496,7 @@ static int ov80_021D1354(UnkStruct_ov80_021D2A08 *param0) static int ov80_021D138C(UnkStruct_ov80_021D2A08 *param0) { - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return 3; } @@ -516,7 +516,7 @@ static int ov80_021D13A0(UnkStruct_ov80_021D2A08 *param0) static int ov80_021D13DC(UnkStruct_ov80_021D2A08 *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { G2_SetBlendAlpha(GX_BLEND_PLANEMASK_NONE, GX_BLEND_PLANEMASK_NONE, 31, 0); sub_0200F344(0, 0x0); sub_0200F344(1, 0x0); diff --git a/src/overlay080/ov80_021D1458.c b/src/overlay080/ov80_021D1458.c index f0e703661f..cbde7985dc 100644 --- a/src/overlay080/ov80_021D1458.c +++ b/src/overlay080/ov80_021D1458.c @@ -18,6 +18,7 @@ #include "font.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "sys_task.h" #include "sys_task_manager.h" @@ -25,7 +26,6 @@ #include "touch_screen.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02039C80.h" #include "unk_02071CFC.h" @@ -199,7 +199,7 @@ int ov80_021D1550(UnkStruct_ov80_021D2A08 *param0) { param0->unk_14 = 0; - sub_0200F174(1, 17, 37, 0x0, 6, 1, param0->unk_04); + StartScreenTransition(1, 17, 37, 0x0, 6, 1, param0->unk_04); Sound_PlayEffect(1679); sub_0200F338(0); sub_0200F338(1); @@ -211,7 +211,7 @@ int ov80_021D1550(UnkStruct_ov80_021D2A08 *param0) int ov80_021D159C(UnkStruct_ov80_021D2A08 *param0) { param0->unk_14 = 0; - sub_0200F174(2, 16, 36, 0x0, 6, 1, param0->unk_04); + StartScreenTransition(2, 16, 36, 0x0, 6, 1, param0->unk_04); Sound_PlayEffect(1680); return 0; } @@ -220,7 +220,7 @@ int ov80_021D15C8(UnkStruct_ov80_021D2A08 *param0) { param0->unk_14 = 0; - sub_0200F174(3, 17, 17, 0x0, 6, 1, param0->unk_04); + StartScreenTransition(3, 17, 17, 0x0, 6, 1, param0->unk_04); Sound_PlayEffect(1679); sub_0200F338(0); @@ -232,7 +232,7 @@ int ov80_021D1610(UnkStruct_ov80_021D2A08 *param0) { param0->unk_14 = 0; - sub_0200F174(3, 16, 16, 0x0, 6, 1, param0->unk_04); + StartScreenTransition(3, 16, 16, 0x0, 6, 1, param0->unk_04); Sound_PlayEffect(1680); return 0; @@ -353,7 +353,7 @@ int ov80_021D1758(UnkStruct_ov80_021D2A08 *param0) ov80_021D1B5C(param0, &(v0->unk_28[3]), v2); Strbuf_Clear(param0->unk_88); ov80_021D1A58(param0, v3, v0->unk_18, v0->unk_1C); - sub_0200E2A4(param0->unk_28, 4, (((((1023 - (21 * 4)) - (28 * 4)) - (28 * 14)) - (10 * 2)) - 100), (15 - 1), v2->unk_04, v2->unk_06, param0->unk_04); + LoadSignpostContentGraphics(param0->unk_28, 4, (((((1023 - (21 * 4)) - (28 * 4)) - (28 * 14)) - (10 * 2)) - 100), (15 - 1), v2->unk_04, v2->unk_06, param0->unk_04); if ((v2->unk_04 == 0) || (v2->unk_04 == 1)) { v1 = &v0->unk_28[1]; @@ -364,7 +364,7 @@ int ov80_021D1758(UnkStruct_ov80_021D2A08 *param0) v0->unk_78 = v1; v0->unk_15_4 = v2->unk_04; - sub_0200E69C(v1, 1, (((((1023 - (21 * 4)) - (28 * 4)) - (28 * 14)) - (10 * 2)) - 100), (15 - 1), v2->unk_04); + Window_DrawSignpost(v1, 1, (((((1023 - (21 * 4)) - (28 * 4)) - (28 * 14)) - (10 * 2)) - 100), (15 - 1), v2->unk_04); Window_FillTilemap(v1, 15); Text_AddPrinterWithParams(v1, FONT_MESSAGE, param0->unk_88, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); Window_CopyToVRAM(v1); @@ -688,7 +688,7 @@ static void ov80_021D1D38(UnkStruct_ov80_021D2A08 *param0) Window_FillTilemap(v1, 0); Window_ClearAndCopyToVRAM(v1); - sub_0200E744(v1, v0->unk_15_4, 0); + Window_EraseSignpost(v1, v0->unk_15_4, 0); Bg_ScheduleTilemapTransfer(param0->unk_28, 4); } @@ -1114,11 +1114,11 @@ static void ov80_021D2774(SysTask *param0, void *param1) CellActor_SetAnimateFlag(v1->unk_100, 0); v0->unk_14 = 0; - sub_0200F174(4, 13, 2, 0x0, 8, 1, v0->unk_04); + StartScreenTransition(4, 13, 2, 0x0, 8, 1, v0->unk_04); v1->unk_04++; break; case 3: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return; } @@ -1132,11 +1132,11 @@ static void ov80_021D2774(SysTask *param0, void *param1) ov80_021D19E4(v0); v0->unk_14 = 0; - sub_0200F174(4, 13, 5, 0x0, 8, 1, v0->unk_04); + StartScreenTransition(4, 13, 5, 0x0, 8, 1, v0->unk_04); v1->unk_04++; break; case 4: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return; } @@ -1159,12 +1159,12 @@ static void ov80_021D28EC(SysTask *param0, void *param1) switch (v1->unk_04) { case 0: v0->unk_14 = 0; - sub_0200F174(4, 13, 2, 0x0, 8, 1, v0->unk_04); + StartScreenTransition(4, 13, 2, 0x0, 8, 1, v0->unk_04); Sound_PlayEffect(1681); v1->unk_04++; break; case 1: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return; } @@ -1173,11 +1173,11 @@ static void ov80_021D28EC(SysTask *param0, void *param1) Bg_ScheduleTilemapTransfer(v0->unk_28, 4); Bg_ScheduleTilemapTransfer(v0->unk_28, 5); v0->unk_14 = 0; - sub_0200F174(4, 13, 5, 0x0, 8, 1, v0->unk_04); + StartScreenTransition(4, 13, 5, 0x0, 8, 1, v0->unk_04); v1->unk_04++; break; case 2: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { return; } diff --git a/src/overlay080/ov80_021D2A08.c b/src/overlay080/ov80_021D2A08.c index 9652087291..1fe20896aa 100644 --- a/src/overlay080/ov80_021D2A08.c +++ b/src/overlay080/ov80_021D2A08.c @@ -19,7 +19,7 @@ void ov80_021D2A08(UnkStruct_ov80_021D2A08 *param0) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); - sub_0201DBEC(32, param0->unk_04); + VRAMTransferManager_New(32, param0->unk_04); param0->unk_D8 = sub_0200C6E4(param0->unk_04); param0->unk_DC = sub_0200C704(param0->unk_D8); @@ -66,7 +66,7 @@ void ov80_021D2AC0(UnkStruct_ov80_021D2A08 *param0) { sub_0200C8B0(param0->unk_D8, param0->unk_DC); sub_0200C8D4(param0->unk_D8); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } void ov80_021D2AE0(UnkStruct_ov80_021D2A08 *param0) @@ -76,5 +76,5 @@ void ov80_021D2AE0(UnkStruct_ov80_021D2A08 *param0) void ov80_021D2AEC(UnkStruct_ov80_021D2A08 *param0) { - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); } diff --git a/src/overlay081/ov81_021D0D80.c b/src/overlay081/ov81_021D0D80.c index 249928ee08..05959418c1 100644 --- a/src/overlay081/ov81_021D0D80.c +++ b/src/overlay081/ov81_021D0D80.c @@ -327,7 +327,7 @@ static void ov81_021D115C(UnkStruct_ov81_021D1610 *param0) static int ov81_021D1174(UnkStruct_ov81_021D1610 *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } @@ -425,7 +425,7 @@ static int ov81_021D12E8(UnkStruct_ov81_021D1610 *param0) static int ov81_021D1358(UnkStruct_ov81_021D1610 *param0) { - return ScreenWipe_Done(); + return IsScreenTransitionDone(); } static void ov81_021D1360(UnkStruct_ov81_021D1610 *param0) diff --git a/src/overlay083/ov83_0223B5A0.c b/src/overlay083/ov83_0223B5A0.c index 2fd5889257..d3f2135abb 100644 --- a/src/overlay083/ov83_0223B5A0.c +++ b/src/overlay083/ov83_0223B5A0.c @@ -115,7 +115,7 @@ int ov83_0223B5B0(OverlayManager *param0, int *param1) v0->unk_18 = v1; v1->unk_00 = 56; - sub_0201DBEC(16, v1->unk_00); + VRAMTransferManager_New(16, v1->unk_00); if (v0->unk_06_0 == 1) { v1->unk_1490 = 1; @@ -223,7 +223,7 @@ int ov83_0223B710(OverlayManager *param0, int *param1) SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); MI_CpuClear8(v2, sizeof(UnkStruct_ov83_0223B784)); OverlayManager_FreeData(param0); @@ -288,11 +288,11 @@ static int ov83_0223B78C(UnkStruct_ov83_0223C344 *param0, UnkStruct_ov83_0223B78 (*param2)++; break; case 1: - sub_0200F174(0, 1, 1, 0xffff, 6, 1, param1->unk_00); + StartScreenTransition(0, 1, 1, 0xffff, 6, 1, param1->unk_00); (*param2)++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return param1->unk_0C + 1; } break; @@ -532,10 +532,10 @@ static int ov83_0223BCEC(UnkStruct_ov83_0223C344 *param0, UnkStruct_ov83_0223B78 ov83_0223F3D0(¶m1->unk_AEC, 3); ov83_0223E2E4(¶m1->unk_5F0); - sub_020057A4(1722, 0); - sub_020057A4(1723, 0); - sub_020057A4(1727, 0); - sub_020057A4(1729, 0); + Sound_StopEffect(1722, 0); + Sound_StopEffect(1723, 0); + Sound_StopEffect(1727, 0); + Sound_StopEffect(1729, 0); Sound_PlayEffect(1730); ov83_0223E484(¶m1->unk_608, 0, 0); @@ -548,11 +548,11 @@ static int ov83_0223BCEC(UnkStruct_ov83_0223C344 *param0, UnkStruct_ov83_0223B78 break; } - sub_0200F174(3, 0, 0, 0x0, 6, 1, param1->unk_00); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, param1->unk_00); (*param2)++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (param0->unk_26) { sub_0203632C(0); } @@ -648,11 +648,11 @@ static int ov83_0223BF74(UnkStruct_ov83_0223C344 *param0, UnkStruct_ov83_0223B78 param1->unk_31C = 0; ov83_0223F730(¶m1->unk_1478, 128, 144, param1->unk_1494.unk_58.unk_0C, param1->unk_00); - sub_0200F174(3, 1, 0, 0x0, 6, 1, param1->unk_00); + StartScreenTransition(3, 1, 0, 0x0, 6, 1, param1->unk_00); (*param2)++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param2)++; param1->unk_1C = (30 * 1); } @@ -816,11 +816,11 @@ static int ov83_0223C258(UnkStruct_ov83_0223C344 *param0, UnkStruct_ov83_0223B78 } break; case 2: - sub_0200F174(0, 0, 0, 0x0, 6, 1, param1->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param1->unk_00); (*param2)++; break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param2)++; } break; diff --git a/src/overlay083/ov83_0223D6A8.c b/src/overlay083/ov83_0223D6A8.c index 793c3c5b87..8867d138b5 100644 --- a/src/overlay083/ov83_0223D6A8.c +++ b/src/overlay083/ov83_0223D6A8.c @@ -44,6 +44,7 @@ #include "gx_layers.h" #include "heap.h" #include "narc.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "string_template.h" @@ -53,7 +54,6 @@ #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" -#include "unk_0200DA60.h" #include "unk_02015064.h" #include "unk_02015920.h" #include "unk_0201D15C.h" @@ -568,7 +568,7 @@ void ov83_0223DF30(UnkStruct_ov83_0223E138 *param0, int param1) StringTemplate_Format(param0->unk_18->unk_04, param0->unk_18->unk_08, param0->unk_18->unk_10); Window_FillTilemap(param0->unk_08, 15); ov83_0223E21C(param0->unk_08, param0->unk_18->unk_08, 0, 0); - sub_0200E060(param0->unk_08, 0, 1, 0); + Window_DrawMessageBoxWithScrollCursor(param0->unk_08, 0, 1, 0); } void ov83_0223DF70(UnkStruct_ov83_0223E138 *param0) @@ -581,7 +581,7 @@ void ov83_0223DF84(UnkStruct_ov83_0223E138 *param0) { Window_FillTilemap(param0->unk_08, 15); ov83_0223E21C(param0->unk_08, param0->unk_18->unk_0C, 0, 0); - sub_0200E060(param0->unk_08, 0, 1, 0); + Window_DrawMessageBoxWithScrollCursor(param0->unk_08, 0, 1, 0); } void ov83_0223DFAC(UnkStruct_ov83_0223E138 *param0) @@ -631,9 +631,9 @@ static void ov83_0223E09C(UnkStruct_ov83_0223E138 *param0, u32 param1) Window_Add(param0->unk_04, param0->unk_0C, 4, 6, 13, 20, 8, 1, (18 + 12) + 1); Window_FillTilemap(param0->unk_08, 15); Window_FillTilemap(param0->unk_0C, 0); - sub_0200DD0C(param0->unk_04, 4, 1, 0, param0->unk_10, param1); + LoadMessageBoxGraphics(param0->unk_04, 4, 1, 0, param0->unk_10, param1); Font_LoadScreenIndicatorsPalette(4, 1 * 32, param1); - sub_0200E060(param0->unk_08, 1, 1, 0); + Window_DrawMessageBoxWithScrollCursor(param0->unk_08, 1, 1, 0); } static void ov83_0223E138(UnkStruct_ov83_0223E138 *param0) @@ -1058,9 +1058,9 @@ static void ov83_0223E77C(UnkStruct_ov83_0223E824 *param0, u32 param1) { 2, 2, 27, 5, 2, 40 } }; - sub_0200DD0C(param0->unk_04, 2, 1, 0, param0->unk_18, param1); + LoadMessageBoxGraphics(param0->unk_04, 2, 1, 0, param0->unk_18, param1); Font_LoadScreenIndicatorsPalette(0, 2 * 32, param1); - sub_0200DAA4(param0->unk_04, 2, (1 + (18 + 12)), 1, 0, param1); + LoadStandardWindowGraphics(param0->unk_04, 2, (1 + (18 + 12)), 1, 0, param1); Font_LoadTextPalette(0, 3 * 32, param1); for (v0 = 0; v0 < 4; v0++) { @@ -1154,13 +1154,13 @@ void ov83_0223E994(UnkStruct_ov83_0223E824 *param0) void ov83_0223E9BC(UnkStruct_ov83_0223E824 *param0) { ov83_0223E9D0(param0); - param0->unk_34 = sub_0200E7FC(param0->unk_08[3], 1); + param0->unk_34 = Window_AddWaitDial(param0->unk_08[3], 1); } void ov83_0223E9D0(UnkStruct_ov83_0223E824 *param0) { if (param0->unk_34 != NULL) { - DeleteWaitDial(param0->unk_34); + DestroyWaitDial(param0->unk_34); param0->unk_34 = NULL; } } @@ -1175,10 +1175,10 @@ static void ov83_0223E9E4(UnkStruct_ov83_0223E824 *param0) Text_AddPrinterWithParamsAndColor(param0->unk_08[1], FONT_SYSTEM, param0->unk_1C->unk_34, v0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 15), NULL); } - Window_Show(param0->unk_08[1], 0, (1 + (18 + 12)), 1); + Window_DrawStandardFrame(param0->unk_08[1], 0, (1 + (18 + 12)), 1); Window_FillTilemap(param0->unk_08[2], 15); Text_AddPrinterWithParamsAndColor(param0->unk_08[2], FONT_SYSTEM, param0->unk_1C->unk_4C[6], 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 15), NULL); - Window_Show(param0->unk_08[2], 0, (1 + (18 + 12)), 1); + Window_DrawStandardFrame(param0->unk_08[2], 0, (1 + (18 + 12)), 1); Window_ScheduleCopyToVRAM(param0->unk_08[1]); Window_ScheduleCopyToVRAM(param0->unk_08[2]); } @@ -1279,7 +1279,7 @@ void ov83_0223EC8C(UnkStruct_ov83_0223E824 *param0, u32 param1) } Text_AddPrinterWithParamsAndColor(param0->unk_08[3], FONT_MESSAGE, v0, 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 15), NULL); - sub_0200E060(param0->unk_08[3], 0, 1, 0); + Window_DrawMessageBoxWithScrollCursor(param0->unk_08[3], 0, 1, 0); Window_ScheduleCopyToVRAM(param0->unk_08[3]); } diff --git a/src/overlay084/ov84_0223B5A0.c b/src/overlay084/ov84_0223B5A0.c index db1425ae4c..2289302df9 100644 --- a/src/overlay084/ov84_0223B5A0.c +++ b/src/overlay084/ov84_0223B5A0.c @@ -5,7 +5,6 @@ #include "constants/field/map_load.h" -#include "struct_decls/struct_0200112C_decl.h" #include "struct_defs/struct_0202D7B0.h" #include "struct_defs/struct_0207CB08.h" #include "struct_defs/struct_02099F80.h" @@ -18,7 +17,6 @@ #include "overlay084/struct_ov84_0223B5A0.h" #include "overlay084/struct_ov84_0223BE5C.h" #include "overlay084/struct_ov84_0223C920.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" @@ -29,25 +27,25 @@ #include "gx_layers.h" #include "heap.h" #include "item.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "touch_screen.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201D15C.h" #include "unk_0201DBEC.h" @@ -78,8 +76,8 @@ static void ov84_0223BFBC(UnkStruct_ov84_0223B5A0 *param0); static void ov84_0223C194(u16 *param0, u16 *param1, u8 param2); static void ov84_0223C1D0(u16 *param0, u16 *param1, u8 param2, u8 param3); static void ov84_0223C224(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2); -static void ov84_0223C2AC(BmpList *param0, u32 param1, u8 param2); -static void ov84_0223C3B8(BmpList *param0, u32 param1, u8 param2); +static void ov84_0223C2AC(ListMenu *param0, u32 param1, u8 param2); +static void ov84_0223C3B8(ListMenu *param0, u32 param1, u8 param2); static void ov84_0223C4E0(UnkStruct_ov84_0223B5A0 *param0); static void ov84_0223BE24(UnkStruct_ov84_0223B5A0 *param0); static u8 ov84_02240C30(UnkStruct_ov84_0223B5A0 *param0, u8 param1); @@ -164,7 +162,7 @@ const OverlayManagerTemplate Unk_ov84_02241130 = { 0xFFFFFFFF }; -static const UnkStruct_ov84_02240FA8 Unk_ov84_02240FA8 = { +static const ListMenuTemplate Unk_ov84_02240FA8 = { NULL, ov84_0223C2AC, ov84_0223C3B8, @@ -410,7 +408,7 @@ int ov84_0223B5A0(OverlayManager *param0, int *param1) v0->unk_00 = BgConfig_New(6); v0->unk_425 = TrainerInfo_Gender(v0->unk_CC); - sub_0200F174(1, 3, 3, 0x0, 6, 1, 6); + StartScreenTransition(1, 3, 3, 0x0, 6, 1, 6); SetAutorepeat(3, 8); ov84_0223BEAC(v0); @@ -446,7 +444,7 @@ int ov84_0223B5A0(OverlayManager *param0, int *param1) SetMainCallback(ov84_0223BA14, v0); sub_02004550(51, 0, 0); - sub_020397E4(); + DrawWifiConnectionIcon(); return 1; } @@ -457,7 +455,7 @@ int ov84_0223B76C(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if (v0->unk_C4->unk_65 == 2) { *param1 = 16; } else if (v0->unk_C4->unk_65 == 1) { @@ -550,7 +548,7 @@ int ov84_0223B76C(OverlayManager *param0, int *param1) *param1 = ov84_0223EA18(v0); break; case 24: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -575,7 +573,7 @@ int ov84_0223B900(OverlayManager *param0, int *param1) ov84_0223BBC4(v0->unk_00); sub_0201E530(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov84_0223FB50(v0); ov84_0223F238(v0); @@ -628,7 +626,7 @@ static void ov84_0223BA14(void *param0) Bg_RunScheduledUpdates(v0->unk_00); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } @@ -822,8 +820,8 @@ static void ov84_0223BC1C(UnkStruct_ov84_0223B5A0 *param0) Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 12, 0, 0, 0, 6); Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 22, 0, 16 * 13 * 2, 32, 6); Font_LoadScreenIndicatorsPalette(0, 11 * 32, 6); - sub_0200DAA4(param0->unk_00, 0, 1024 - 9, 14, 0, 6); - sub_0200DD0C(param0->unk_00, 0, 1024 - 9 - (18 + 12), 12, Options_Frame(param0->unk_D0), 6); + LoadStandardWindowGraphics(param0->unk_00, 0, 1024 - 9, 14, 0, 6); + LoadMessageBoxGraphics(param0->unk_00, 0, 1024 - 9 - (18 + 12), 12, Options_Frame(param0->unk_D0), 6); Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_D4, 15, param0->unk_00, 5, 0, 0, 0, 6); Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 16, 4, 0, 0, 6); Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_D4, 17, param0->unk_00, 5, 0, 0, 0, 6); @@ -956,9 +954,9 @@ static void ov84_0223BFBC(UnkStruct_ov84_0223B5A0 *param0) u32 v1; v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64]; - param0->unk_160 = sub_02013A04(Unk_ov84_02241118[v0->unk_08] + 3, 6); + param0->unk_160 = StringList_New(Unk_ov84_02241118[v0->unk_08] + 3, 6); - sub_02013A4C(param0->unk_160, param0->unk_114, 32, 0xfffffffd); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd); if (v0->unk_08 == 3) { for (v1 = 0; v1 < Unk_ov84_02241118[v0->unk_08]; v1++) { @@ -967,11 +965,11 @@ static void ov84_0223BFBC(UnkStruct_ov84_0223B5A0 *param0) } ov84_0223BE94(param0->unk_120, param0->unk_164[v1], v0->unk_00[v1].item, 6); - sub_02013A6C(param0->unk_160, param0->unk_164[v1], v1); + StringList_AddFromStrbuf(param0->unk_160, param0->unk_164[v1], v1); } - sub_02013A4C(param0->unk_160, param0->unk_114, 32, 0xfffffffe); - sub_02013A4C(param0->unk_160, param0->unk_114, 32, 0xfffffffd); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd); v0->unk_09 = v1 + 3; } else { @@ -981,20 +979,20 @@ static void ov84_0223BFBC(UnkStruct_ov84_0223B5A0 *param0) } ov84_0223BE84(param0->unk_11C, param0->unk_164[v1], v0->unk_00[v1].item, 6); - sub_02013A6C(param0->unk_160, param0->unk_164[v1], v1); + StringList_AddFromStrbuf(param0->unk_160, param0->unk_164[v1], v1); } if (param0->unk_C4->unk_65 != 5) { if (v0->unk_08 == 4) { - sub_02013A4C(param0->unk_160, param0->unk_114, 32, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffe); } else { - sub_02013A4C(param0->unk_160, param0->unk_114, 41, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 41, 0xfffffffe); } - sub_02013A4C(param0->unk_160, param0->unk_114, 32, 0xfffffffd); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd); v0->unk_09 = v1 + 3; } else { - sub_02013A4C(param0->unk_160, param0->unk_114, 32, 0xfffffffd); + StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd); v0->unk_09 = v1 + 2; } } @@ -1069,27 +1067,27 @@ static void ov84_0223C1D0(u16 *param0, u16 *param1, u8 param2, u8 param3) static void ov84_0223C224(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; v0 = Unk_ov84_02240FA8; - v0.unk_00 = param0->unk_160; - v0.unk_0C = ¶m0->unk_04[0]; - v0.unk_10 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09; - v0.unk_1C = (void *)param0; + v0.choices = param0->unk_160; + v0.window = ¶m0->unk_04[0]; + v0.count = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09; + v0.tmp = (void *)param0; if ((param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 3) || (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 4)) { - v0.unk_15 = (32 + 3); + v0.textXOffset = (32 + 3); } else { - v0.unk_15 = 0; + v0.textXOffset = 0; } - param0->unk_15C = sub_0200112C(&v0, param1, param2, 6); + param0->unk_15C = ListMenu_New(&v0, param1, param2, 6); Window_ScheduleCopyToVRAM(¶m0->unk_04[0]); } -static void ov84_0223C2AC(BmpList *param0, u32 param1, u8 param2) +static void ov84_0223C2AC(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov84_0223B5A0 *v0 = (UnkStruct_ov84_0223B5A0 *)sub_02001504(param0, 19); + UnkStruct_ov84_0223B5A0 *v0 = (UnkStruct_ov84_0223B5A0 *)ListMenu_GetAttribute(param0, 19); if (param2 != 1) { switch (v0->unk_482) { @@ -1134,15 +1132,15 @@ static void ov84_0223C2AC(BmpList *param0, u32 param1, u8 param2) } } -static void ov84_0223C3B8(BmpList *param0, u32 param1, u8 param2) +static void ov84_0223C3B8(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov84_0223B5A0 *v0 = (UnkStruct_ov84_0223B5A0 *)sub_02001504(param0, 19); + UnkStruct_ov84_0223B5A0 *v0 = (UnkStruct_ov84_0223B5A0 *)ListMenu_GetAttribute(param0, 19); UnkStruct_ov84_0223BE5C *v1 = &v0->unk_C4->unk_04[v0->unk_C4->unk_64]; if ((v0->unk_47A == 1) && (v0->unk_47C == param1)) { - sub_0200147C(param0, 8, 0, 9); + ListMenu_SetAltTextColors(param0, 8, 0, 9); } else { - sub_0200147C(param0, 1, 0, 2); + ListMenu_SetAltTextColors(param0, 1, 0, 2); } if (v1->unk_08 == 7) { @@ -1176,8 +1174,8 @@ static void ov84_0223C3B8(BmpList *param0, u32 param1, u8 param2) static void ov84_0223C4E0(UnkStruct_ov84_0223B5A0 *param0) { - sub_02001384(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04); - sub_02013A3C(param0->unk_160); + ListMenu_Free(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04); + StringList_Free(param0->unk_160); param0->unk_15C = NULL; } @@ -1229,7 +1227,7 @@ static u8 ov84_0223C5B8(UnkStruct_ov84_0223B5A0 *param0) u16 v2, v3; v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64]; - sub_020014DC(param0->unk_15C, &v0->unk_06, &v0->unk_04); + ListMenu_GetListAndCursorPos(param0->unk_15C, &v0->unk_06, &v0->unk_04); if (gCoreSys.pressedKeys & PAD_BUTTON_SELECT) { if (ov84_0223D244(param0) == 1) { @@ -1238,8 +1236,8 @@ static u8 ov84_0223C5B8(UnkStruct_ov84_0223B5A0 *param0) } } - v1 = sub_02001288(param0->unk_15C); - sub_020014DC(param0->unk_15C, &v2, &v3); + v1 = ListMenu_ProcessInput(param0->unk_15C); + ListMenu_GetListAndCursorPos(param0->unk_15C, &v2, &v3); if (v0->unk_04 != v3) { SpriteActor_SetSpritePositionXY( @@ -1251,18 +1249,18 @@ static u8 ov84_0223C5B8(UnkStruct_ov84_0223B5A0 *param0) if (v1 == 0xffffffff) { if (ov84_0223D1F4(param0) == 1) { - v1 = sub_020014F8(param0->unk_15C, v2 + v3); + v1 = ListMenu_GetIndexOfChoice(param0->unk_15C, v2 + v3); param0->unk_490 = 1; } } switch (v1) { case 0xffffffff: { - u8 v4 = sub_020014F0(param0->unk_15C); + u8 v4 = ListMenu_GetLastAction(param0->unk_15C); - if (v4 == 1) { + if (v4 == LIST_MENU_ACTION_MOVE_UP) { ov84_0223EB08(param0, 36); - } else if (v4 == 2) { + } else if (v4 == LIST_MENU_ACTION_MOVE_DOWN) { ov84_0223EB08(param0, -36); } } break; @@ -1536,8 +1534,8 @@ static u8 ov84_0223CBD8(UnkStruct_ov84_0223B5A0 *param0) ov84_0223F2FC(param0); } else { if (param0->unk_15C != NULL) { - sub_02001384(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04); - sub_02013A3C(param0->unk_160); + ListMenu_Free(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04); + StringList_Free(param0->unk_160); } param0->unk_C4->unk_64 = v0->unk_00; @@ -1811,7 +1809,7 @@ static u8 ov84_0223D244(UnkStruct_ov84_0223B5A0 *param0) { UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64]; - if (sub_020014F8(param0->unk_15C, v0->unk_06 + v0->unk_04) == 0xfffffffe) { + if (ListMenu_GetIndexOfChoice(param0->unk_15C, v0->unk_06 + v0->unk_04) == 0xfffffffe) { return 0; } @@ -1832,10 +1830,10 @@ static void ov84_0223D2A0(UnkStruct_ov84_0223B5A0 *param0) param0->unk_47A = 1; param0->unk_47B = v0->unk_06 + v0->unk_04; - param0->unk_47C = sub_020014F8(param0->unk_15C, param0->unk_47B); + param0->unk_47C = ListMenu_GetIndexOfChoice(param0->unk_15C, param0->unk_47B); ov84_0223FE18(param0); - sub_020013AC(param0->unk_15C); + ListMenu_Draw(param0->unk_15C); ov84_0223D4E8(param0); } @@ -1850,7 +1848,7 @@ static u8 ov84_0223D2F8(UnkStruct_ov84_0223B5A0 *param0) } v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64]; - sub_020014DC(param0->unk_15C, &v0->unk_06, &v0->unk_04); + ListMenu_GetListAndCursorPos(param0->unk_15C, &v0->unk_06, &v0->unk_04); if (ov84_0223D1F4(param0) == 1) { Sound_PlayEffect(1500); @@ -1866,8 +1864,8 @@ static u8 ov84_0223D2F8(UnkStruct_ov84_0223B5A0 *param0) return 1; } - v1 = sub_02001288(param0->unk_15C); - sub_020014DC(param0->unk_15C, &v2, &v3); + v1 = ListMenu_ProcessInput(param0->unk_15C); + ListMenu_GetListAndCursorPos(param0->unk_15C, &v2, &v3); if (v0->unk_04 != v3) { SpriteActor_SetSpritePositionXY(param0->unk_E0[5], 177, 24 + (v3 - 1) * 16 - 8); @@ -1878,11 +1876,11 @@ static u8 ov84_0223D2F8(UnkStruct_ov84_0223B5A0 *param0) switch (v1) { case 0xffffffff: { - u8 v4 = sub_020014F0(param0->unk_15C); + u8 v4 = ListMenu_GetLastAction(param0->unk_15C); - if (v4 == 1) { + if (v4 == LIST_MENU_ACTION_MOVE_UP) { ov84_0223EB08(param0, 36); - } else if (v4 == 2) { + } else if (v4 == LIST_MENU_ACTION_MOVE_DOWN) { ov84_0223EB08(param0, -36); } } break; @@ -1912,7 +1910,7 @@ static void ov84_0223D42C(UnkStruct_ov84_0223B5A0 *param0) if (!((param0->unk_47B == v1) || (param0->unk_47B == (v1 - 1)))) { Item_MoveInPocket(v0->unk_00, param0->unk_47B - 1, v1 - 1); - sub_02013A3C(param0->unk_160); + StringList_Free(param0->unk_160); ov84_0223BFBC(param0); } @@ -1923,7 +1921,7 @@ static void ov84_0223D484(UnkStruct_ov84_0223B5A0 *param0) { UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64]; - sub_02001384(param0->unk_15C, &v0->unk_06, &v0->unk_04); + ListMenu_Free(param0->unk_15C, &v0->unk_06, &v0->unk_04); param0->unk_15C = NULL; if (param0->unk_47B < (v0->unk_06 + v0->unk_04)) { @@ -2041,22 +2039,22 @@ static int ov84_0223D730(UnkStruct_ov84_0223B5A0 *param0) return 4; } - v0 = sub_02001BE0(param0->unk_158); + v0 = Menu_ProcessInput(param0->unk_158); if (v0 == 0xffffffff) { if (ov84_0223D1F4(param0) == 1) { - v0 = sub_02001D44(param0->unk_158, 0); + v0 = Menu_ProcessExternalInput(param0->unk_158, 0); param0->unk_490 = 1; } } switch (v0) { case 0xffffffff: { - u8 v1 = sub_02001DC8(param0->unk_158); + u8 v1 = Menu_GetLastAction(param0->unk_158); - if (v1 == 1) { + if (v1 == MENU_ACTION_MOVE_UP) { ov84_0223EB08(param0, 18); - } else if (v1 == 2) { + } else if (v1 == MENU_ACTION_MOVE_DOWN) { ov84_0223EB08(param0, -18); } } break; @@ -2112,7 +2110,7 @@ static int ov84_0223D858(UnkStruct_ov84_0223B5A0 *param0) if (v2 != 0) { sub_0207CD34(param0->unk_CC, param0->unk_3F8, param0->unk_C4->unk_66, v2, 6); Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); param0->unk_426 = ov84_022400A0(param0); return 12; @@ -2126,7 +2124,7 @@ static int ov84_0223D8EC(UnkStruct_ov84_0223B5A0 *param0) { if (Text_IsPrinterActive(param0->unk_426) == 0) { if ((gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gCoreSys.touchPressed) { - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2154,7 +2152,7 @@ static int ov84_0223D94C(UnkStruct_ov84_0223B5A0 *param0) if (sub_0207CC10(param0->unk_C4->unk_00, param0->unk_3F8, param0->unk_C4->unk_66, 6) == 1) { Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); param0->unk_426 = ov84_022400A0(param0); return 12; } @@ -2191,7 +2189,7 @@ static int ov84_0223DA14(UnkStruct_ov84_0223B5A0 *param0) } } Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); param0->unk_426 = ov84_022400A0(param0); param0->unk_483 = 1; @@ -2228,10 +2226,10 @@ static int ov84_0223DA14(UnkStruct_ov84_0223B5A0 *param0) } if (ov84_0223D1F4(param0) == 1) { - v2 = sub_02002134(param0->unk_158, 0, 6); + v2 = Menu_ProcessExternalInputAndHandleExit(param0->unk_158, 0, 6); param0->unk_490 = 1; } else { - v2 = sub_02002114(param0->unk_158, 6); + v2 = Menu_ProcessInputAndHandleExit(param0->unk_158, 6); } switch (v2) { @@ -2241,16 +2239,16 @@ static int ov84_0223DA14(UnkStruct_ov84_0223B5A0 *param0) param0->unk_C4->unk_68 = 0; return 24; case 0xffffffff: { - u8 v3 = sub_02001DC8(param0->unk_158); + u8 v3 = Menu_GetLastAction(param0->unk_158); - if (v3 == 1) { + if (v3 == MENU_ACTION_MOVE_UP) { ov84_0223EB08(param0, 18); - } else if (v3 == 2) { + } else if (v3 == MENU_ACTION_MOVE_DOWN) { ov84_0223EB08(param0, -18); } } break; case 0xfffffffe: - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); ov84_0223D7E8(param0, 0); @@ -2309,8 +2307,8 @@ static Strbuf *ov84_0223DC9C(UnkStruct_ov84_0223B5A0 *param0, u16 param1) static void ov84_0223DCF8(UnkStruct_ov84_0223B5A0 *param0) { Pocket_TryRemoveItem(param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_00, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09 - 3, param0->unk_C4->unk_66, param0->unk_488, 6); - sub_02001384(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04); - sub_02013A3C(param0->unk_160); + ListMenu_Free(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04); + StringList_Free(param0->unk_160); ov84_0223BFBC(param0); ov84_0223C194(¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09); @@ -2323,7 +2321,7 @@ static int ov84_0223DDD0(UnkStruct_ov84_0223B5A0 *param0) switch (param0->unk_483) { case 0: Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); param0->unk_426 = ov84_022400A0(param0); param0->unk_483 = 1; break; @@ -2333,7 +2331,7 @@ static int ov84_0223DDD0(UnkStruct_ov84_0223B5A0 *param0) } if ((gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gCoreSys.touchPressed) { - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseMessageBox(¶m0->unk_04[6], 0); param0->unk_483 = 2; } @@ -2450,10 +2448,10 @@ static int ov84_0223E01C(UnkStruct_ov84_0223B5A0 *param0) } if (ov84_0223D1F4(param0) == 1) { - v0 = sub_02002134(param0->unk_158, 0, 6); + v0 = Menu_ProcessExternalInputAndHandleExit(param0->unk_158, 0, 6); param0->unk_490 = 1; } else { - v0 = sub_02002114(param0->unk_158, 6); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_158, 6); } switch (v0) { @@ -2475,16 +2473,16 @@ static int ov84_0223E01C(UnkStruct_ov84_0223B5A0 *param0) return 10; case 0xffffffff: { - u8 v2 = sub_02001DC8(param0->unk_158); + u8 v2 = Menu_GetLastAction(param0->unk_158); - if (v2 == 1) { + if (v2 == MENU_ACTION_MOVE_UP) { ov84_0223EB08(param0, 18); - } else if (v2 == 2) { + } else if (v2 == MENU_ACTION_MOVE_DOWN) { ov84_0223EB08(param0, -18); } } break; case 0xfffffffe: - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); return 1; @@ -2511,7 +2509,7 @@ static int ov84_0223E18C(UnkStruct_ov84_0223B5A0 *param0) if (Text_IsPrinterActive(param0->unk_426) == 0) { if ((gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gCoreSys.touchPressed) { param0->unk_479 = 0; - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2525,7 +2523,7 @@ static int ov84_0223E18C(UnkStruct_ov84_0223B5A0 *param0) static int ov84_0223E1E4(UnkStruct_ov84_0223B5A0 *param0) { Bag_RegisterItem(param0->unk_C8, param0->unk_C4->unk_66); - sub_020013AC(param0->unk_15C); + ListMenu_Draw(param0->unk_15C); ov84_0223FD84(param0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2536,7 +2534,7 @@ static int ov84_0223E1E4(UnkStruct_ov84_0223B5A0 *param0) static int ov84_0223E220(UnkStruct_ov84_0223B5A0 *param0) { Bag_RegisterItem(param0->unk_C8, 0); - sub_020013AC(param0->unk_15C); + ListMenu_Draw(param0->unk_15C); ov84_0223FD84(param0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2577,7 +2575,7 @@ static int ov84_0223E27C(UnkStruct_ov84_0223B5A0 *param0) Strbuf *v1; Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); StringTemplate_SetItemName(param0->unk_118, 0, param0->unk_C4->unk_66); v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 46); @@ -2606,7 +2604,7 @@ static int ov84_0223E36C(UnkStruct_ov84_0223B5A0 *param0) { if (Text_IsPrinterActive(param0->unk_426) == 0) { if ((gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gCoreSys.touchPressed) { - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2640,7 +2638,7 @@ static int ov84_0223E3BC(UnkStruct_ov84_0223B5A0 *param0) ov84_02240248(param0, 0); Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); StringTemplate_SetItemName(param0->unk_118, 0, param0->unk_C4->unk_66); ov84_02240B34(param0, 2); @@ -2707,7 +2705,7 @@ static int ov84_0223E5C4(UnkStruct_ov84_0223B5A0 *param0) Strbuf *v0; ov84_02240D3C(param0, 0); - Window_Clear(¶m0->unk_04[7], 1); + Window_EraseStandardFrame(¶m0->unk_04[7], 1); Window_FillTilemap(¶m0->unk_04[6], 15); v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 76); StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_488 * param0->unk_48C, 6, 0, 1); @@ -2737,7 +2735,7 @@ static int ov84_0223E5C4(UnkStruct_ov84_0223B5A0 *param0) Strbuf *v1; ov84_02240D3C(param0, 0); - Window_Clear(¶m0->unk_04[7], 1); + Window_EraseStandardFrame(¶m0->unk_04[7], 1); Window_FillTilemap(¶m0->unk_04[6], 15); v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 76); @@ -2754,9 +2752,9 @@ static int ov84_0223E5C4(UnkStruct_ov84_0223B5A0 *param0) param0->unk_48C = 0; ov84_02240D3C(param0, 0); - Window_Clear(¶m0->unk_04[8], 1); - Window_Clear(¶m0->unk_04[7], 1); - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseStandardFrame(¶m0->unk_04[8], 1); + Window_EraseStandardFrame(¶m0->unk_04[7], 1); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); Sound_PlayEffect(1500); @@ -2787,10 +2785,10 @@ static int ov84_0223E7CC(UnkStruct_ov84_0223B5A0 *param0) } if (ov84_0223D1F4(param0) == 1) { - v0 = sub_02002134(param0->unk_158, 0, 6); + v0 = Menu_ProcessExternalInputAndHandleExit(param0->unk_158, 0, 6); param0->unk_490 = 1; } else { - v0 = sub_02002114(param0->unk_158, 6); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_158, 6); } switch (v0) { @@ -2811,18 +2809,18 @@ static int ov84_0223E7CC(UnkStruct_ov84_0223B5A0 *param0) param0->unk_426 = ov84_022400A0(param0); return 21; case 0xffffffff: { - u8 v2 = sub_02001DC8(param0->unk_158); + u8 v2 = Menu_GetLastAction(param0->unk_158); - if (v2 == 1) { + if (v2 == MENU_ACTION_MOVE_UP) { ov84_0223EB08(param0, 18); - } else if (v2 == 2) { + } else if (v2 == MENU_ACTION_MOVE_DOWN) { ov84_0223EB08(param0, -18); } } break; case 0xfffffffe: param0->unk_48C = 0; - Window_Clear(¶m0->unk_04[8], 1); - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseStandardFrame(¶m0->unk_04[8], 1); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2864,8 +2862,8 @@ static int ov84_0223E9B0(UnkStruct_ov84_0223B5A0 *param0) param0->unk_479 = 0; param0->unk_48C = 0; - Window_Clear(¶m0->unk_04[8], 1); - sub_0200E084(¶m0->unk_04[6], 0); + Window_EraseStandardFrame(¶m0->unk_04[8], 1); + Window_EraseMessageBox(¶m0->unk_04[6], 0); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240B34(param0, 1); @@ -2900,7 +2898,7 @@ static int ov84_0223EA18(UnkStruct_ov84_0223B5A0 *param0) if (Item_LoadParam(param0->unk_C4->unk_66, 6, 6) != 13) { sub_0207CD34(param0->unk_CC, param0->unk_3F8, param0->unk_C4->unk_66, -1, 6); Window_FillTilemap(¶m0->unk_04[6], 15); - sub_0200E060(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12); param0->unk_426 = ov84_022400A0(param0); return 12; @@ -3051,7 +3049,7 @@ static BOOL ov84_0223ED64(UnkStruct_ov84_0223B5A0 *param0, u16 param1) v0 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06; v1 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04; - sub_02001408(param0->unk_15C, NULL, v0, v1, 1, param1, &v0, &v1); + ListMenu_TestInput(param0->unk_15C, NULL, v0, v1, 1, param1, &v0, &v1); if ((v0 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06) && (v1 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04)) { return 0; @@ -3097,7 +3095,7 @@ static BOOL ov84_0223EE80(UnkStruct_ov84_0223B5A0 *param0, u16 param1) v0 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06; v1 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04; - sub_02001408(param0->unk_15C, NULL, v0, v1, 1, param1, &v0, &v1); + ListMenu_TestInput(param0->unk_15C, NULL, v0, v1, 1, param1, &v0, &v1); if ((v0 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06) && (v1 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04)) { return 0; @@ -3138,11 +3136,11 @@ static BOOL ov84_0223EF4C(UnkStruct_ov84_0223B5A0 *param0) static BOOL ov84_0223EF9C(UnkStruct_ov84_0223B5A0 *param0, u8 param1) { - u8 v0 = sub_02001DC4(param0->unk_158); + u8 v0 = Menu_GetCursorPos(param0->unk_158); - sub_02001D44(param0->unk_158, param1); + Menu_ProcessExternalInput(param0->unk_158, param1); - if (v0 == sub_02001DC4(param0->unk_158)) { + if (v0 == Menu_GetCursorPos(param0->unk_158)) { return 0; } diff --git a/src/overlay084/ov84_0223F040.c b/src/overlay084/ov84_0223F040.c index b3157e6ac9..5d736e220d 100644 --- a/src/overlay084/ov84_0223F040.c +++ b/src/overlay084/ov84_0223F040.c @@ -4,7 +4,6 @@ #include #include "struct_defs/struct_0207CB08.h" -#include "struct_defs/struct_02081CF4.h" #include "overlay084/ov84_0223B5A0.h" #include "overlay084/ov84_022403F4.h" @@ -18,20 +17,20 @@ #include "game_options.h" #include "heap.h" #include "item.h" +#include "menu.h" #include "message.h" #include "move_table.h" #include "narc.h" #include "poffin.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" static void ov84_0223F9B0(UnkStruct_ov84_0223B5A0 *param0, u32 param1); static BOOL ov84_022400E0(TextPrinterTemplate *param0, u16 param1); @@ -400,7 +399,7 @@ void ov84_0223FB50(UnkStruct_ov84_0223B5A0 *param0) void ov84_0223FB70(UnkStruct_ov84_0223B5A0 *param0, u8 *param1, u8 param2) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; UnkStruct_ov84_0223BE5C *v1; Strbuf *v2; Strbuf *v3; @@ -415,27 +414,27 @@ void ov84_0223FB70(UnkStruct_ov84_0223B5A0 *param0, u8 *param1, u8 param2) v5 = 3; } - param0->unk_154 = sub_02013A04(param2, 6); + param0->unk_154 = StringList_New(param2, 6); for (v4 = 0; v4 < param2; v4++) { - sub_02013A6C(param0->unk_154, param0->unk_124[param1[v4]], ov84_0223D84C(param1[v4])); + StringList_AddFromStrbuf(param0->unk_154, param0->unk_124[param1[v4]], ov84_0223D84C(param1[v4])); } - v0.unk_00 = param0->unk_154; - v0.unk_04 = ¶m0->unk_B4[0]; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = param2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; + v0.choices = param0->unk_154; + v0.window = ¶m0->unk_B4[0]; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = param2; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; if (param2 >= 4) { - v0.unk_0B_6 = 1; + v0.loopAround = TRUE; } else { - v0.unk_0B_6 = 0; + v0.loopAround = FALSE; } - param0->unk_158 = sub_02001AF4(&v0, 8, 0, 0, 6, PAD_BUTTON_B); + param0->unk_158 = Menu_New(&v0, 8, 0, 0, 6, PAD_BUTTON_B); if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 3) { Window_FillTilemap(¶m0->unk_04[1], 0); @@ -443,7 +442,7 @@ void ov84_0223FB70(UnkStruct_ov84_0223B5A0 *param0, u8 *param1, u8 param2) Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); ov84_02240D5C(param0, param0->unk_C4->unk_66, 1); } else { - sub_0200E060(¶m0->unk_04[v5], 1, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[v5], 1, 1024 - 9 - (18 + 12), 12); Window_FillTilemap(¶m0->unk_04[v5], 15); v2 = MessageLoader_GetNewStrbuf(param0->unk_114, 42); @@ -458,7 +457,7 @@ void ov84_0223FB70(UnkStruct_ov84_0223B5A0 *param0, u8 *param1, u8 param2) Window_ScheduleCopyToVRAM(¶m0->unk_04[v5]); } - Window_Show(¶m0->unk_B4[0], 1, 1024 - 9, 14); + Window_DrawStandardFrame(¶m0->unk_B4[0], 1, 1024 - 9, 14); Window_ScheduleCopyToVRAM(¶m0->unk_B4[0]); } @@ -473,14 +472,14 @@ void ov84_0223FD84(UnkStruct_ov84_0223B5A0 *param0) } if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 != 3) { - sub_0200E084(¶m0->unk_04[v0], 1); + Window_EraseMessageBox(¶m0->unk_04[v0], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[v0]); } - Window_Clear(¶m0->unk_B4[0], 1); + Window_EraseStandardFrame(¶m0->unk_B4[0], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_B4[0]); - sub_02001BC4(param0->unk_158, NULL); - sub_02013A3C(param0->unk_154); + Menu_Free(param0->unk_158, NULL); + StringList_Free(param0->unk_154); Window_Remove(¶m0->unk_B4[0]); Window_FillTilemap(¶m0->unk_04[1], 0); ov84_0223F528(param0, param0->unk_C4->unk_66); @@ -514,9 +513,9 @@ void ov84_0223FE94(UnkStruct_ov84_0223B5A0 *param0) Strbuf *v2; u16 v3; - Window_Show(¶m0->unk_04[9], 1, 1024 - 9, 14); + Window_DrawStandardFrame(¶m0->unk_04[9], 1, 1024 - 9, 14); ov84_0223FF44(param0); - sub_0200E060(¶m0->unk_04[3], 1, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[3], 1, 1024 - 9 - (18 + 12), 12); Window_FillTilemap(¶m0->unk_04[3], 15); v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 52); @@ -551,8 +550,8 @@ void ov84_0223FF44(UnkStruct_ov84_0223B5A0 *param0) void ov84_0223FFC0(UnkStruct_ov84_0223B5A0 *param0) { - sub_0200E084(¶m0->unk_04[3], 1); - Window_Clear(¶m0->unk_04[9], 1); + Window_EraseMessageBox(¶m0->unk_04[3], 1); + Window_EraseStandardFrame(¶m0->unk_04[9], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[3]); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[9]); Window_ScheduleCopyToVRAM(¶m0->unk_04[1]); @@ -564,7 +563,7 @@ void ov84_0223FFF0(UnkStruct_ov84_0223B5A0 *param0) Strbuf *v1; u16 v2; - sub_0200E060(¶m0->unk_04[6], 1, 1024 - 9 - (18 + 12), 12); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 1, 1024 - 9 - (18 + 12), 12); Window_FillTilemap(¶m0->unk_04[6], 15); v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 54); @@ -613,7 +612,7 @@ static BOOL ov84_022400E0(TextPrinterTemplate *param0, u16 param1) void ov84_02240120(UnkStruct_ov84_0223B5A0 *param0) { - param0->unk_158 = sub_02002100(param0->unk_00, &Unk_ov84_02241150, 1024 - 9, 14, 6); + param0->unk_158 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_ov84_02241150, 1024 - 9, 14, 6); } void ov84_02240148(UnkStruct_ov84_0223B5A0 *param0, u8 param1) @@ -625,7 +624,7 @@ void ov84_02240148(UnkStruct_ov84_0223B5A0 *param0, u8 param1) v0 = ¶m0->unk_04[7]; if (param1 == 0) { - Window_Show(v0, 1, 1024 - 9, 14); + Window_DrawStandardFrame(v0, 1, 1024 - 9, 14); } Window_FillTilemap(v0, 15); @@ -659,7 +658,7 @@ void ov84_02240248(UnkStruct_ov84_0223B5A0 *param0, u8 param1) if (param1 == 0) { Window_FillTilemap(v0, 15); - Window_Show(v0, 1, 1024 - 9, 14); + Window_DrawStandardFrame(v0, 1, 1024 - 9, 14); v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 78); @@ -689,7 +688,7 @@ void ov84_02240328(UnkStruct_ov84_0223B5A0 *param0) v0 = ¶m0->unk_04[10]; Window_FillTilemap(v0, 15); - Window_Show(v0, 1, 1024 - 9, 14); + Window_DrawStandardFrame(v0, 1, 1024 - 9, 14); v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 108); Text_AddPrinterWithParams(v0, FONT_SYSTEM, v1, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); diff --git a/src/overlay084/ov84_022403F4.c b/src/overlay084/ov84_022403F4.c index 420723dd12..c47d4e62e5 100644 --- a/src/overlay084/ov84_022403F4.c +++ b/src/overlay084/ov84_022403F4.c @@ -178,7 +178,7 @@ void ov84_022403F4(UnkStruct_ov84_0223B5A0 *param0) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); - sub_0201DBEC(32, 6); + VRAMTransferManager_New(32, 6); ov84_02240424(param0); ov84_022404C0(param0); ov84_02240950(param0); diff --git a/src/overlay085/ov85_02241440.c b/src/overlay085/ov85_02241440.c index 99a106cd06..0bde7a5341 100644 --- a/src/overlay085/ov85_02241440.c +++ b/src/overlay085/ov85_02241440.c @@ -246,7 +246,7 @@ int ov85_02241440(OverlayManager *param0, int *param1) ov85_02242218(v0); SetMainCallback(ov85_022415F4, v0); - sub_020397E4(); + DrawWifiConnectionIcon(); GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); NARC_dtor(v1); @@ -694,7 +694,7 @@ static void ov85_02241CD0(UnkStruct_ov85_022417E4 *param0) static int ov85_02241CE8(UnkStruct_ov85_022417E4 *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { G2_SetBlendAlpha(GX_BLEND_PLANEMASK_BG1, GX_BLEND_PLANEMASK_BG2, 16, 0); return 1; } @@ -756,7 +756,7 @@ static int ov85_02241D10(UnkStruct_ov85_022417E4 *param0) static u8 ov85_02241DEC(UnkStruct_ov85_022417E4 *param0) { - return ScreenWipe_Done(); + return IsScreenTransitionDone(); } static int ov85_02241DF8(UnkStruct_ov85_022417E4 *param0) diff --git a/src/overlay086/ov86_0223B140.c b/src/overlay086/ov86_0223B140.c index 6cab882581..5d74d396e9 100644 --- a/src/overlay086/ov86_0223B140.c +++ b/src/overlay086/ov86_0223B140.c @@ -405,11 +405,11 @@ static BOOL ov86_0223B3C8(UnkStruct_ov86_0223B3C8 *param0) { switch (param0->unk_00) { case 0: - sub_0200F174(3, 1, 1, 0x0, 16, 1, 63); + StartScreenTransition(3, 1, 1, 0x0, 16, 1, 63); param0->unk_00++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } @@ -421,12 +421,12 @@ static BOOL ov86_0223B40C(UnkStruct_ov86_0223B3C8 *param0) { switch (param0->unk_00) { case 0: - sub_0200F174(3, 0, 0, 0x0, 2, 1, 63); + StartScreenTransition(3, 0, 0, 0x0, 2, 1, 63); sub_0200564C(0, 30); param0->unk_00++; break; case 1: - if (ScreenWipe_Done() && (Sound_CheckFade() == 0)) { + if (IsScreenTransitionDone() && (Sound_CheckFade() == 0)) { return 1; } } diff --git a/src/overlay087/ov87_021D106C.c b/src/overlay087/ov87_021D106C.c index 412c6e5b59..25bf197843 100644 --- a/src/overlay087/ov87_021D106C.c +++ b/src/overlay087/ov87_021D106C.c @@ -21,6 +21,7 @@ #include "heap.h" #include "message.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" @@ -28,7 +29,6 @@ #include "unk_02006224.h" #include "unk_020093B4.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" #include "unk_02017728.h" @@ -156,11 +156,11 @@ static BOOL ov87_021D1210(UnkStruct_ov87_021D106C *param0, int *param1) case 0: ov87_021D139C(param0); ov87_021D1818(param0); - sub_0200F174(3, 1, 1, 0x0, 6, 1, 61); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 61); (*param1)++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } @@ -175,11 +175,11 @@ static BOOL ov87_021D1260(UnkStruct_ov87_021D106C *param0, int *param1) switch (*param1) { case 0: Sound_PlayEffect(1550); - sub_0200F174(3, 0, 0, 0x0, 6, 1, 61); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 61); (*param1)++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov87_021D186C(param0); ov87_021D14B8(param0); return 1; @@ -312,9 +312,9 @@ static void ov87_021D139C(UnkStruct_ov87_021D106C *param0) v4 = ov87_021D14D4(param0, 1); ov87_021D1558(param0); - sub_0200DAA4(param0->unk_10, 1, v4, 2, 0, 61); - Window_Show(&(param0->unk_14[0]), 0, v4, 2); - Window_Show(&(param0->unk_14[1]), 0, v4, 2); + LoadStandardWindowGraphics(param0->unk_10, 1, v4, 2, 0, 61); + Window_DrawStandardFrame(&(param0->unk_14[0]), 0, v4, 2); + Window_DrawStandardFrame(&(param0->unk_14[1]), 0, v4, 2); Bg_CopyTilemapBufferToVRAM(param0->unk_10, 1); G2_SetBlendAlpha(GX_BLEND_PLANEMASK_NONE, GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG1, 8, 8); @@ -540,8 +540,8 @@ static void ov87_021D1970(UnkStruct_ov87_021D106C *param0) v2 = param0->unk_04; for (v3 = 0; v3 < v2->unk_14; v3++) { - Pokemon_InitWith(param0->unk_1FC, v2->unk_20[v3].unk_10, v2->unk_20[v3].unk_12, 32, 1, v2->unk_20[v3].unk_08, 1, v2->unk_20[v3].unk_0C); - Pokemon_SetValue(param0->unk_1FC, 112, (void *)(&(v2->unk_20[v3].unk_13))); + Pokemon_InitWith(param0->unk_1FC, v2->unk_20[v3].unk_10, v2->unk_20[v3].unk_12, 32, TRUE, v2->unk_20[v3].unk_08, OTID_SET, v2->unk_20[v3].unk_0C); + Pokemon_SetValue(param0->unk_1FC, MON_DATA_FORM, (void *)(&(v2->unk_20[v3].unk_13))); Pokemon_BuildArchivedSprite(&v1, param0->unk_1FC, 2); sub_02013720(v1.archive, v1.character, 61, &v0, param0->unk_200, v2->unk_20[v3].unk_08, 0, 2, v2->unk_20[v3].unk_10); diff --git a/src/overlay088/ov88_0223B140.c b/src/overlay088/ov88_0223B140.c index 1dc14a3a6d..22f915b947 100644 --- a/src/overlay088/ov88_0223B140.c +++ b/src/overlay088/ov88_0223B140.c @@ -12,12 +12,10 @@ #include "struct_defs/archived_sprite.h" #include "struct_defs/chatot_cry.h" #include "struct_defs/struct_02027F8C.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02095E80_t.h" #include "struct_defs/struct_02099F80.h" #include "overlay022/struct_ov22_022559F8.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay088/ov88_0223E9C4.h" #include "overlay088/struct_ov88_0223C370.h" #include "overlay088/struct_ov88_0223C8AC.h" @@ -38,6 +36,8 @@ #include "inlines.h" #include "item.h" #include "journal.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" @@ -46,16 +46,16 @@ #include "pokemon.h" #include "pokemon_icon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "rtc.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "touch_screen.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_02006224.h" @@ -63,10 +63,8 @@ #include "unk_0200A328.h" #include "unk_0200A784.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201D15C.h" #include "unk_0201DBEC.h" @@ -306,7 +304,7 @@ int ov88_0223B140(OverlayManager *param0, int *param1) SetAutorepeat(4, 8); ov88_0223C15C(); ov88_0223C17C(v0->unk_174); - sub_0200F174(0, 1, 1, 0x0, 16, 1, 26); + StartScreenTransition(0, 1, 1, 0x0, 16, 1, 26); ov88_0223C504(v0, v1); SetMainCallback(ov88_0223C0E0, v0); ov88_0223C63C(); @@ -377,8 +375,8 @@ static void ov88_0223B3C0(UnkStruct_02095E80 *param0) ov88_0223B4F0(param0); ov88_0223B320(param0); - sub_0200DD0C(param0->unk_174, 0, (512 - (9 + (18 + 12))), 10, Options_Frame(param0->unk_08->unk_18), 26); - sub_0200DAA4(param0->unk_174, 0, (512 - 9), 11, 0, 26); + LoadMessageBoxGraphics(param0->unk_174, 0, (512 - (9 + (18 + 12))), 10, Options_Frame(param0->unk_08->unk_18), 26); + LoadStandardWindowGraphics(param0->unk_174, 0, (512 - 9), 11, 0, 26); ov88_0223ECBC(¶m0->unk_49C[21], 15, FONT_MESSAGE, param0->unk_184, param0->unk_178); @@ -421,7 +419,7 @@ int ov88_0223B57C(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 1; ov88_0223B320(v0); @@ -437,15 +435,15 @@ int ov88_0223B57C(OverlayManager *param0, int *param1) ov88_0223CE74(v0); break; case 2: - sub_0200F174(0, 0, 0, 0x0, 8, 1, 26); + StartScreenTransition(0, 0, 0, 0x0, 8, 1, 26); *param1 = 2; break; case 3: - sub_0200F174(0, 0, 0, 0x0, 8, 1, 26); + StartScreenTransition(0, 0, 0, 0x0, 8, 1, 26); v0->unk_48 = 4; break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov88_0223BFD8(v0); ov88_0223BF7C(v0); ov88_0223C44C(v0->unk_174); @@ -472,18 +470,18 @@ int ov88_0223B57C(OverlayManager *param0, int *param1) } break; case 6: - sub_0200F174(0, 1, 1, 0x0, 8, 1, 26); + StartScreenTransition(0, 1, 1, 0x0, 8, 1, 26); v0->unk_48 = 7; break; case 7: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_48 = 1; } break; } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v1 = 1; } break; @@ -737,7 +735,7 @@ static int ov88_0223B914(UnkStruct_02095E80 *param0) break; case 19: if (sub_0200AC1C(2)) { - sub_0200E084(¶m0->unk_49C[23], 0); + Window_EraseMessageBox(¶m0->unk_49C[23], 0); Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[21], 15, FONT_MESSAGE, param0->unk_184, param0->unk_178); ResetUnlock(2); @@ -1864,7 +1862,7 @@ static int ov88_0223D5B8(UnkStruct_02095E80 *param0) int v0; TrainerInfo *v1; - v0 = sub_02001288(param0->unk_36D8); + v0 = ListMenu_ProcessInput(param0->unk_36D8); switch (v0) { case 0xffffffff: @@ -1893,21 +1891,21 @@ static int ov88_0223D5B8(UnkStruct_02095E80 *param0) break; } - Window_Clear(¶m0->unk_36DC, 0); + Window_EraseStandardFrame(¶m0->unk_36DC, 0); Window_Remove(¶m0->unk_36DC); - sub_02001384(param0->unk_36D8, NULL, NULL); - sub_02013A3C(param0->unk_36D4); + ListMenu_Free(param0->unk_36D8, NULL, NULL); + StringList_Free(param0->unk_36D4); return 0; } static int ov88_0223D69C(UnkStruct_02095E80 *param0) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1 = sub_0202AF94(param0->unk_36EC); int v2 = 5; - param0->unk_36D4 = sub_02013A04(v1 + 1, 26); + param0->unk_36D4 = StringList_New(v1 + 1, 26); { MessageLoader *v3; @@ -1917,11 +1915,11 @@ static int ov88_0223D69C(UnkStruct_02095E80 *param0) for (v5 = 0; v5 < 32; v5++) { if (sub_0202AF78(param0->unk_36EC, v5)) { Strbuf_CopyChars(v4, sub_0202AEF0(param0->unk_36EC, v5)); - sub_02013A6C(param0->unk_36D4, v4, v5); + StringList_AddFromStrbuf(param0->unk_36D4, v4, v5); } } - sub_02013A4C(param0->unk_36D4, param0->unk_36D0, 11, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_36D4, param0->unk_36D0, 11, 0xfffffffe); Strbuf_Free(v4); } @@ -2077,31 +2075,31 @@ static int ov88_0223DA00(UnkStruct_02095E80 *param0) static int ov88_0223DA3C(UnkStruct_02095E80 *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 3; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 3; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; StringTemplate_SetNickname(param0->unk_17C, 0, Pokemon_GetBoxPokemon(Party_GetPokemonBySlotIndex(param0->unk_2270, param0->unk_88[0]))); Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[22], 16, FONT_MESSAGE, param0->unk_184, param0->unk_17C); - param0->unk_6C0 = sub_02013A04(3, 26); + param0->unk_6C0 = StringList_New(3, 26); - sub_02013A4C(param0->unk_6C0, param0->unk_184, 17, 0); - sub_02013A4C(param0->unk_6C0, param0->unk_184, 18, 1); - sub_02013A4C(param0->unk_6C0, param0->unk_184, 19, 2); + StringList_AddFromMessageBank(param0->unk_6C0, param0->unk_184, 17, 0); + StringList_AddFromMessageBank(param0->unk_6C0, param0->unk_184, 18, 1); + StringList_AddFromMessageBank(param0->unk_6C0, param0->unk_184, 19, 2); - v0.unk_00 = param0->unk_6C0; - v0.unk_04 = ¶m0->unk_49C[24]; + v0.choices = param0->unk_6C0; + v0.window = ¶m0->unk_49C[24]; ov88_0223ED80(¶m0->unk_49C[24]); - param0->unk_6C4 = sub_02001B7C(&v0, 8, 0, 0, 26, PAD_BUTTON_B); + param0->unk_6C4 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 26, PAD_BUTTON_B); param0->unk_226C = ov88_0223DB48; return 0; @@ -2109,28 +2107,28 @@ static int ov88_0223DA3C(UnkStruct_02095E80 *param0) static int ov88_0223DB48(UnkStruct_02095E80 *param0) { - switch (sub_02001BE0(param0->unk_6C4)) { + switch (Menu_ProcessInput(param0->unk_6C4)) { case 0: Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[21], 15, FONT_MESSAGE, param0->unk_184, param0->unk_178); - sub_02001BC4(param0->unk_6C4, NULL); - sub_02013A3C(param0->unk_6C0); + Menu_Free(param0->unk_6C4, NULL); + StringList_Free(param0->unk_6C0); param0->unk_226C = ov88_0223D150; return 3; break; case 1: Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[23], 20, FONT_MESSAGE, param0->unk_184, param0->unk_178); - sub_02001BC4(param0->unk_6C4, NULL); - sub_02013A3C(param0->unk_6C0); + Menu_Free(param0->unk_6C4, NULL); + StringList_Free(param0->unk_6C0); param0->unk_226C = ov88_0223DC84; break; case 2: case 0xfffffffe: Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[21], 15, FONT_MESSAGE, param0->unk_184, param0->unk_178); - sub_02001BC4(param0->unk_6C4, NULL); - sub_02013A3C(param0->unk_6C0); + Menu_Free(param0->unk_6C4, NULL); + StringList_Free(param0->unk_6C0); param0->unk_226C = ov88_0223D150; break; } @@ -2426,30 +2424,30 @@ static int ov88_0223E478(UnkStruct_02095E80 *param0) static int ov88_0223E4BC(UnkStruct_02095E80 *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 2; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; StringTemplate_SetNickname(param0->unk_17C, 0, Pokemon_GetBoxPokemon(Party_GetPokemonBySlotIndex(param0->unk_2274, param0->unk_88[0] - 6))); Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[22], 16, FONT_MESSAGE, param0->unk_184, param0->unk_17C); - param0->unk_6C0 = sub_02013A04(2, 26); + param0->unk_6C0 = StringList_New(2, 26); - sub_02013A4C(param0->unk_6C0, param0->unk_184, 17, 0); - sub_02013A4C(param0->unk_6C0, param0->unk_184, 19, 1); + StringList_AddFromMessageBank(param0->unk_6C0, param0->unk_184, 17, 0); + StringList_AddFromMessageBank(param0->unk_6C0, param0->unk_184, 19, 1); - v0.unk_00 = param0->unk_6C0; - v0.unk_04 = ¶m0->unk_49C[25]; + v0.choices = param0->unk_6C0; + v0.window = ¶m0->unk_49C[25]; ov88_0223ED80(¶m0->unk_49C[25]); - param0->unk_6C4 = sub_02001B7C(&v0, 8, 0, 0, 26, PAD_BUTTON_B); + param0->unk_6C4 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 26, PAD_BUTTON_B); param0->unk_226C = ov88_0223E5B8; return 0; @@ -2457,13 +2455,13 @@ static int ov88_0223E4BC(UnkStruct_02095E80 *param0) static int ov88_0223E5B8(UnkStruct_02095E80 *param0) { - switch (sub_02001BE0(param0->unk_6C4)) { + switch (Menu_ProcessInput(param0->unk_6C4)) { case 0: Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[21], 15, FONT_MESSAGE, param0->unk_184, param0->unk_178); param0->unk_226C = ov88_0223D150; - sub_02001BC4(param0->unk_6C4, NULL); - sub_02013A3C(param0->unk_6C0); + Menu_Free(param0->unk_6C4, NULL); + StringList_Free(param0->unk_6C0); return 3; break; @@ -2471,8 +2469,8 @@ static int ov88_0223E5B8(UnkStruct_02095E80 *param0) case 0xfffffffe: Bg_FillTilemapRect(param0->unk_174, 0, 0, 0, 0, 32, 24, 0); ov88_0223ECBC(¶m0->unk_49C[21], 15, FONT_MESSAGE, param0->unk_184, param0->unk_178); - sub_02001BC4(param0->unk_6C4, NULL); - sub_02013A3C(param0->unk_6C0); + Menu_Free(param0->unk_6C4, NULL); + StringList_Free(param0->unk_6C0); param0->unk_226C = ov88_0223D150; break; } @@ -2500,11 +2498,11 @@ static void ov88_0223E694(Party *param0, Party *param1, int param2, int param3, } } - Pokemon_SetValue(v1, 111, NULL); + Pokemon_SetValue(v1, MON_DATA_GENDER, NULL); if (Pokemon_GetValue(v1, MON_DATA_IS_EGG, NULL) == 0) { u8 v3 = 70; - Pokemon_SetValue(v1, 9, &v3); + Pokemon_SetValue(v1, MON_DATA_FRIENDSHIP, &v3); } sub_0209304C(v1, CommInfo_TrainerInfo(CommSys_CurNetId()), 5, 0, 11); @@ -2515,7 +2513,7 @@ static void ov88_0223E694(Party *param0, Party *param1, int param2, int param3, param4->unk_2C = param2; - if (Party_HasSpecies(param0, 441) == 0) { + if (Party_HasSpecies(param0, SPECIES_CHATOT) == 0) { ChatotCry *v4 = GetChatotCryDataFromSave(param4->unk_10); ResetChatotCryDataStatus(v4); } @@ -2559,13 +2557,13 @@ static void ov88_0223E87C(CellActor *param0, int param1, int param2) static void ov88_0223E894(UnkStruct_02095E80 *param0) { - param0->unk_3700 = sub_0200E7FC(¶m0->unk_49C[23], (512 - (9 + (18 + 12)))); + param0->unk_3700 = Window_AddWaitDial(¶m0->unk_49C[23], (512 - (9 + (18 + 12)))); } static void ov88_0223E8B4(UnkStruct_02095E80 *param0) { if (param0->unk_3700 != NULL) { - DeleteWaitDial(param0->unk_3700); + DestroyWaitDial(param0->unk_3700); param0->unk_3700 = NULL; } } diff --git a/src/overlay088/ov88_0223E9C4.c b/src/overlay088/ov88_0223E9C4.c index 80242916ca..ff4988ebc0 100644 --- a/src/overlay088/ov88_0223E9C4.c +++ b/src/overlay088/ov88_0223E9C4.c @@ -3,26 +3,20 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" - -#include "overlay084/struct_ov84_02240FA8.h" - #include "bg_window.h" #include "font.h" #include "game_options.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "message_util.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -static void ov88_0223EE14(BmpList *param0, u32 param1, u8 param2); +static void ov88_0223EE14(ListMenu *param0, u32 param1, u8 param2); static const u16 Unk_ov88_0223F1A8[][5] = { { 0x4, 0x1, 0x9, 0x2, 0x1 }, @@ -65,8 +59,8 @@ void ov88_0223E9C4(BgConfig *param0, Window *param1, Options *param2) Window_Add(param0, ¶m1[6], 1, 26, 21, 5, 2, 8, ((1 + (10 * 2)) + (10 * 2))); Window_FillTilemap(¶m1[6], 0); - sub_0200DD0C(param0, 0, (512 - (9 + (18 + 12))), 10, Options_Frame(param2), 26); - sub_0200DAA4(param0, 0, (512 - 9), 11, 0, 26); + LoadMessageBoxGraphics(param0, 0, (512 - (9 + (18 + 12))), 10, Options_Frame(param2), 26); + LoadStandardWindowGraphics(param0, 0, (512 - 9), 11, 0, 26); Window_Add(param0, ¶m1[21], 0, 2, 21, 20, 2, 13, 1); Window_FillTilemap(¶m1[21], 0); @@ -138,9 +132,9 @@ int ov88_0223ECBC(Window *param0, int param1, int param2, MessageLoader *param3, v0 = MessageUtil_ExpandedStrbuf(param4, param3, param1, 26); if (param2 == 1) { - sub_0200E060(param0, 0, (512 - (9 + (18 + 12))), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 0, (512 - (9 + (18 + 12))), 10); } else { - Window_Show(param0, 0, (512 - 9), 11); + Window_DrawStandardFrame(param0, 0, (512 - 9), 11); } Window_FillTilemap(param0, 15); @@ -160,17 +154,17 @@ static const WindowTemplate Unk_ov88_0223F148 = { 0x112 }; -u32 ov88_0223ED2C(BgConfig *param0, UIControlData **param1, int *param2) +u32 ov88_0223ED2C(BgConfig *param0, Menu **param1, int *param2) { u32 v0 = 0xffffffff; switch (*param2) { case 0: - *param1 = sub_02002100(param0, &Unk_ov88_0223F148, (512 - 9), 11, 26); + *param1 = Menu_MakeYesNoChoice(param0, &Unk_ov88_0223F148, (512 - 9), 11, 26); (*param2)++; break; case 1: - v0 = sub_02002114(*param1, 26); + v0 = Menu_ProcessInputAndHandleExit(*param1, 26); if (v0 != 0xffffffff) { (*param2) = 0; @@ -182,10 +176,10 @@ u32 ov88_0223ED2C(BgConfig *param0, UIControlData **param1, int *param2) void ov88_0223ED80(Window *param0) { - Window_Show(param0, 0, (512 - 9), 11); + Window_DrawStandardFrame(param0, 0, (512 - 9), 11); } -static const UnkStruct_ov84_02240FA8 Unk_ov88_0223F150 = { +static const ListMenuTemplate Unk_ov88_0223F150 = { NULL, NULL, NULL, @@ -207,27 +201,27 @@ static const UnkStruct_ov84_02240FA8 Unk_ov88_0223F150 = { NULL }; -BmpList *ov88_0223ED94(ResourceMetadata *param0, int param1, Window *param2, BgConfig *param3) +ListMenu *ov88_0223ED94(StringList *param0, int param1, Window *param2, BgConfig *param3) { - BmpList *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenu *v0; + ListMenuTemplate v1; int v2 = 5; Window_Add(param3, param2, 0, 19, 1, 12, v2 * 2, 13, (512 - (9 + (18 + 12))) - (10 * (v2 + 2) * 2)); - Window_Show(param2, 0, (512 - 9), 11); + Window_DrawStandardFrame(param2, 0, (512 - 9), 11); v1 = Unk_ov88_0223F150; - v1.unk_10 = param1 + 1; - v1.unk_12 = v2; - v1.unk_00 = param0; - v1.unk_0C = param2; - v1.unk_04 = ov88_0223EE14; - v0 = sub_0200112C(&v1, 0, 0, 26); + v1.count = param1 + 1; + v1.maxDisplay = v2; + v1.choices = param0; + v1.window = param2; + v1.cursorCallback = ov88_0223EE14; + v0 = ListMenu_New(&v1, 0, 0, 26); return v0; } -static void ov88_0223EE14(BmpList *param0, u32 param1, u8 param2) +static void ov88_0223EE14(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); diff --git a/src/overlay090/ov90_021D0D80.c b/src/overlay090/ov90_021D0D80.c index 977ce7b293..1449480df2 100644 --- a/src/overlay090/ov90_021D0D80.c +++ b/src/overlay090/ov90_021D0D80.c @@ -167,11 +167,11 @@ int ov90_021D0E04(OverlayManager *param0, int *param1) break; } - sub_0200F174(3, 1, 1, 0x0, 6, 1, v1->unk_00); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, v1->unk_00); (*param1)++; break; case 1: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { break; } @@ -188,11 +188,11 @@ int ov90_021D0E04(OverlayManager *param0, int *param1) break; } - sub_0200F174(3, 0, 0, 0x0, 6, 1, v1->unk_00); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, v1->unk_00); (*param1)++; break; case 3: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { break; } @@ -854,7 +854,7 @@ static void ov90_021D1A9C(UnkStruct_ov90_021D0ECC *param0) static void ov90_021D1ABC(UnkStruct_ov90_021D0ECC *param0) { - sub_0201DBEC(32, param0->unk_00); + VRAMTransferManager_New(32, param0->unk_00); param0->unk_29C = sub_0200C6E4(param0->unk_00); param0->unk_2A0 = sub_0200C704(param0->unk_29C); @@ -905,7 +905,7 @@ static void ov90_021D1B6C(UnkStruct_ov90_021D0ECC *param0) { sub_0200C8B0(param0->unk_29C, param0->unk_2A0); sub_0200C8D4(param0->unk_29C); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } static void ov90_021D1B90(UnkStruct_ov90_021D0ECC *param0) @@ -919,7 +919,7 @@ static void ov90_021D1B90(UnkStruct_ov90_021D0ECC *param0) static void ov90_021D1BA4(void) { - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); } static void ov90_021D1BAC(UnkStruct_ov90_021D0ECC *param0) diff --git a/src/overlay091/ov91_021D0D80.c b/src/overlay091/ov91_021D0D80.c index 63bdb619e3..c8beb1aa97 100644 --- a/src/overlay091/ov91_021D0D80.c +++ b/src/overlay091/ov91_021D0D80.c @@ -3,19 +3,14 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/pokemon_summary.h" #include "struct_defs/sprite_template.h" #include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_020997B8.h" #include "struct_defs/struct_02099F80.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay104/struct_ov104_022412F4.h" #include "overlay104/struct_ov104_02241308.h" #include "overlay104/struct_ov104_0224133C.h" @@ -28,6 +23,8 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "move_table.h" #include "narc.h" @@ -35,16 +32,14 @@ #include "pokemon.h" #include "pokemon_summary_app.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0207C908.h" @@ -60,9 +55,9 @@ typedef struct { MessageLoader *unk_F8; StringTemplate *unk_FC; Strbuf *unk_100; - BmpList *unk_104; - ResourceMetadata *unk_108; - UIControlData *unk_10C; + ListMenu *unk_104; + StringList *unk_108; + Menu *unk_10C; SpriteRenderer *unk_110; SpriteGfxHandler *unk_114; CellActorData *unk_118[13]; @@ -109,8 +104,8 @@ static void ov91_021D1498(UnkStruct_ov91_021D0ED8 *param0); static void ov91_021D1664(UnkStruct_ov91_021D0ED8 *param0); static void ov91_021D1784(UnkStruct_ov91_021D0ED8 *param0); static void ov91_021D1868(UnkStruct_ov91_021D0ED8 *param0); -static void ov91_021D188C(BmpList *param0, u32 param1, u8 param2); -static void ov91_021D18C4(BmpList *param0, u32 param1, u8 param2); +static void ov91_021D188C(ListMenu *param0, u32 param1, u8 param2); +static void ov91_021D18C4(ListMenu *param0, u32 param1, u8 param2); static void ov91_021D18C8(UnkStruct_ov91_021D0ED8 *param0, u32 param1); static void ov91_021D1A68(UnkStruct_ov91_021D0ED8 *param0, u32 param1); static void ov91_021D1BBC(UnkStruct_ov91_021D0ED8 *param0, u16 param1); @@ -159,7 +154,7 @@ static const WindowTemplate Unk_ov91_021D2884[] = { { 0x0, 0x17, 0xD, 0x7, 0x4, 0xE, 0x2A6 } }; -static const UnkStruct_ov84_02240FA8 Unk_ov91_021D27BC = { +static const ListMenuTemplate Unk_ov91_021D27BC = { NULL, ov91_021D188C, ov91_021D18C4, @@ -480,7 +475,7 @@ static void ov91_021D0F6C(UnkStruct_ov91_021D0ED8 *param0) ov91_021D11F0(param0); ov91_021D20B4(param0); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); SetMainCallback(NULL, NULL); } @@ -490,7 +485,7 @@ static void ov91_021D0F9C(void *param0) Bg_RunScheduledUpdates(v0->unk_04); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } @@ -607,8 +602,8 @@ static void ov91_021D10C8(UnkStruct_ov91_021D0ED8 *param0, NARC *param1) Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 11, param0->unk_04, 2, 0, 0, 0, 67); Graphics_LoadPaletteFromOpenNARC(param1, 12, 0, 0, 0, 67); Font_LoadScreenIndicatorsPalette(0, 14 * 32, 67); - sub_0200DAA4(param0->unk_04, 0, 1, 12, 0, 67); - sub_0200DD0C(param0->unk_04, 0, (1 + 9), 13, Options_Frame(param0->unk_00->unk_08), 67); + LoadStandardWindowGraphics(param0->unk_04, 0, 1, 12, 0, 67); + LoadMessageBoxGraphics(param0->unk_04, 0, (1 + 9), 13, Options_Frame(param0->unk_00->unk_08), 67); } static void ov91_021D1154(UnkStruct_ov91_021D0ED8 *param0) @@ -623,7 +618,7 @@ static void ov91_021D1154(UnkStruct_ov91_021D0ED8 *param0) ov91_021D1664(param0); Window_FillTilemap(¶m0->unk_08[12], 15); - sub_0200E060(¶m0->unk_08[12], 0, (1 + 9), 13); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_08[12], 0, (1 + 9), 13); } static void ov91_021D11A0(UnkStruct_ov91_021D0ED8 *param0) @@ -651,7 +646,7 @@ static void ov91_021D11F0(UnkStruct_ov91_021D0ED8 *param0) static int ov91_021D1214(UnkStruct_ov91_021D0ED8 *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return param0->unk_180; } @@ -670,9 +665,9 @@ static int ov91_021D122C(UnkStruct_ov91_021D0ED8 *param0) return 1; } - sub_020014DC(param0->unk_104, &v1, &v2); - v0 = sub_02001288(param0->unk_104); - sub_020014DC(param0->unk_104, ¶m0->unk_00->unk_12, ¶m0->unk_00->unk_10); + ListMenu_GetListAndCursorPos(param0->unk_104, &v1, &v2); + v0 = ListMenu_ProcessInput(param0->unk_104); + ListMenu_GetListAndCursorPos(param0->unk_104, ¶m0->unk_00->unk_12, ¶m0->unk_00->unk_10); ov91_021D237C(param0, v1, param0->unk_00->unk_12); if (param0->unk_00->unk_10 != v2) { @@ -724,13 +719,13 @@ static int ov91_021D134C(UnkStruct_ov91_021D0ED8 *param0) static int ov91_021D136C(UnkStruct_ov91_021D0ED8 *param0) { - param0->unk_10C = sub_02002100(param0->unk_04, &Unk_ov91_021D2884[14], 1, 12, 67); + param0->unk_10C = Menu_MakeYesNoChoice(param0->unk_04, &Unk_ov91_021D2884[14], 1, 12, 67); return 4; } static int ov91_021D1394(UnkStruct_ov91_021D0ED8 *param0) { - switch (sub_02002114(param0->unk_10C, 67)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_10C, 67)) { case 0: return Unk_ov91_021D27DC[param0->unk_186].unk_00(param0); case 0xfffffffe: @@ -745,13 +740,13 @@ static int ov91_021D13E4(UnkStruct_ov91_021D0ED8 *param0) u32 v0; v0 = ov91_021D1DD0(param0); - Pokemon_SetValue(param0->unk_00->unk_00, 54 + param0->unk_00->unk_17, &v0); + Pokemon_SetValue(param0->unk_00->unk_00, MON_DATA_MOVE1 + param0->unk_00->unk_17, &v0); v0 = 0; - Pokemon_SetValue(param0->unk_00->unk_00, 62 + param0->unk_00->unk_17, &v0); + Pokemon_SetValue(param0->unk_00->unk_00, MON_DATA_MOVE1_PP_UPS + param0->unk_00->unk_17, &v0); v0 = MoveTable_CalcMaxPP(ov91_021D1DD0(param0), 0); - Pokemon_SetValue(param0->unk_00->unk_00, 58 + param0->unk_00->unk_17, &v0); + Pokemon_SetValue(param0->unk_00->unk_00, MON_DATA_MOVE1_CUR_PP + param0->unk_00->unk_17, &v0); param0->unk_00->unk_16 = 0; @@ -907,21 +902,21 @@ static u32 ov91_021D175C(UnkStruct_ov91_021D0ED8 *param0) static void ov91_021D1784(UnkStruct_ov91_021D0ED8 *param0) { MessageLoader *v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; u32 v2; param0->unk_184 = (u8)ov91_021D175C(param0) + 1; - param0->unk_108 = sub_02013A04(param0->unk_184, 67); + param0->unk_108 = StringList_New(param0->unk_184, 67); v0 = MessageLoader_Init( 0, 26, 647, 67); for (v2 = 0; v2 < param0->unk_184; v2++) { if (param0->unk_00->unk_0C[v2] != 0xffff) { - sub_02013A4C( + StringList_AddFromMessageBank( param0->unk_108, v0, param0->unk_00->unk_0C[v2], param0->unk_00->unk_0C[v2]); } else { - sub_02013A4C( + StringList_AddFromMessageBank( param0->unk_108, param0->unk_F8, 32, 0xfffffffe); break; } @@ -930,25 +925,25 @@ static void ov91_021D1784(UnkStruct_ov91_021D0ED8 *param0) MessageLoader_Free(v0); v1 = Unk_ov91_021D27BC; - v1.unk_00 = param0->unk_108; - v1.unk_0C = ¶m0->unk_08[13]; - v1.unk_10 = param0->unk_184; - v1.unk_1C = (void *)param0; + v1.choices = param0->unk_108; + v1.window = ¶m0->unk_08[13]; + v1.count = param0->unk_184; + v1.tmp = (void *)param0; - param0->unk_104 = sub_0200112C(&v1, param0->unk_00->unk_12, param0->unk_00->unk_10, 67); + param0->unk_104 = ListMenu_New(&v1, param0->unk_00->unk_12, param0->unk_00->unk_10, 67); Window_ScheduleCopyToVRAM(¶m0->unk_08[13]); } static void ov91_021D1868(UnkStruct_ov91_021D0ED8 *param0) { - sub_02001384(param0->unk_104, ¶m0->unk_00->unk_12, ¶m0->unk_00->unk_10); - sub_02013A3C(param0->unk_108); + ListMenu_Free(param0->unk_104, ¶m0->unk_00->unk_12, ¶m0->unk_00->unk_10); + StringList_Free(param0->unk_108); } -static void ov91_021D188C(BmpList *param0, u32 param1, u8 param2) +static void ov91_021D188C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov91_021D0ED8 *v0 = (UnkStruct_ov91_021D0ED8 *)sub_02001504(param0, 19); + UnkStruct_ov91_021D0ED8 *v0 = (UnkStruct_ov91_021D0ED8 *)ListMenu_GetAttribute(param0, 19); if (param2 != 1) { Sound_PlayEffect(1501); @@ -961,7 +956,7 @@ static void ov91_021D188C(BmpList *param0, u32 param1, u8 param2) } } -static void ov91_021D18C4(BmpList *param0, u32 param1, u8 param2) +static void ov91_021D18C4(ListMenu *param0, u32 param1, u8 param2) { return; } @@ -1147,7 +1142,7 @@ static u16 ov91_021D1DD0(UnkStruct_ov91_021D0ED8 *param0) static u16 ov91_021D1DE0(UnkStruct_ov91_021D0ED8 *param0) { - return (u16)Pokemon_GetValue(param0->unk_00->unk_00, 54 + param0->unk_00->unk_17, NULL); + return (u16)Pokemon_GetValue(param0->unk_00->unk_00, MON_DATA_MOVE1 + param0->unk_00->unk_17, NULL); } static void ov91_021D1DF8(UnkStruct_ov91_021D0ED8 *param0, u32 param1) @@ -1184,7 +1179,7 @@ static u8 ov91_021D1EA0(UnkStruct_ov91_021D0ED8 *param0) { u8 v0; - for (v0 = 0; v0 < 4; v0++) { + for (v0 = 0; v0 < LEARNED_MOVES_MAX; v0++) { if (Pokemon_GetValue(param0->unk_00->unk_00, MON_DATA_MOVE1 + v0, NULL) == 0) { break; } @@ -1288,7 +1283,7 @@ static void ov91_021D2014(UnkStruct_ov91_021D0ED8 *param0) 11, 2, 4, 4, 0, 0 }; - sub_0201DBEC(64, 67); + VRAMTransferManager_New(64, 67); param0->unk_110 = sub_0200C6E4(67); param0->unk_114 = sub_0200C704(param0->unk_110); diff --git a/src/overlay092/ov92_021D0D80.c b/src/overlay092/ov92_021D0D80.c index 2e0c2c7716..9ad2b83b53 100644 --- a/src/overlay092/ov92_021D0D80.c +++ b/src/overlay092/ov92_021D0D80.c @@ -3,14 +3,9 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202C878_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_02099F80.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay092/struct_ov92_021D28C0.h" #include "overlay115/camera_angle.h" @@ -23,21 +18,21 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201D15C.h" #include "unk_0202419C.h" @@ -79,9 +74,9 @@ typedef struct { Window unk_B824; Window unk_B834; Window unk_B844; - BmpList *unk_B854; - ResourceMetadata *unk_B858; - UIControlData *unk_B85C; + ListMenu *unk_B854; + StringList *unk_B858; + Menu *unk_B85C; MessageLoader *unk_B860; int unk_B864; int unk_B868; @@ -142,8 +137,8 @@ static int ov92_021D16F8(int param0); static void ov92_021D1700(UnkStruct_ov92_021D1B24 *param0); static void ov92_021D1818(int param0, int param1, int *param2, int *param3, int *param4, int *param5); static BOOL ov92_021D1B70(UnkStruct_ov92_021D1B24 *param0, u32 param1, int param2); -static void ov92_021D1C4C(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const UnkStruct_ov84_02240FA8 *param3, const UnkStruct_ov92_021D2958 *param4); -static void ov92_021D1CF4(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const UnkStruct_ov84_02240FA8 *param3, u32 param4, const u8 *param5, u32 param6); +static void ov92_021D1C4C(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const ListMenuTemplate *param3, const UnkStruct_ov92_021D2958 *param4); +static void ov92_021D1CF4(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const ListMenuTemplate *param3, u32 param4, const u8 *param5, u32 param6); static void ov92_021D1DB4(UnkStruct_ov92_021D1B24 *param0); static void ov92_021D1DEC(UnkStruct_ov92_021D1B24 *param0); static void ov92_021D1EBC(UnkStruct_ov92_021D1B24 *param0, int param1, int param2); @@ -261,7 +256,7 @@ static const UnkStruct_ov92_021D2958 Unk_ov92_021D2958[] = { { 0xC, 0x2 } }; -static const UnkStruct_ov84_02240FA8 Unk_ov92_021D29A8 = { +static const ListMenuTemplate Unk_ov92_021D29A8 = { NULL, NULL, NULL, @@ -282,7 +277,7 @@ static const UnkStruct_ov84_02240FA8 Unk_ov92_021D29A8 = { 0x0 }; -static const UnkStruct_ov84_02240FA8 Unk_ov92_021D29C8 = { +static const ListMenuTemplate Unk_ov92_021D29C8 = { NULL, NULL, NULL, @@ -381,7 +376,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) v0->unk_BAEC = 0; - sub_0200F174(0, 1, 1, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, v0->unk_00); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG2, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, 1); @@ -389,7 +384,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) *param1 = 1; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 2; } break; @@ -409,7 +404,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) } break; case 4: { - int v3 = sub_02001288(v0->unk_B854); + int v3 = ListMenu_ProcessInput(v0->unk_B854); if (v3 == 0xffffffff) { break; @@ -434,12 +429,12 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) } break; case 5: if (ov92_021D1B70(v0, 2, 1) == 1) { - v0->unk_B85C = sub_02002100(v0->unk_B810, &Unk_ov92_021D292C, ((512 - (18 + 12)) - 9), 7, v0->unk_00); + v0->unk_B85C = Menu_MakeYesNoChoice(v0->unk_B810, &Unk_ov92_021D292C, ((512 - (18 + 12)) - 9), 7, v0->unk_00); *param1 = 6; } break; case 6: { - u32 v4 = sub_02002114(v0->unk_B85C, v0->unk_00); + u32 v4 = Menu_ProcessInputAndHandleExit(v0->unk_B85C, v0->unk_00); switch (v4) { case 0: @@ -464,7 +459,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) } break; case 8: { - int v5 = sub_02001288(v0->unk_B854); + int v5 = ListMenu_ProcessInput(v0->unk_B854); if (v5 == 0xffffffff) { break; @@ -506,7 +501,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) } break; case 10: { - int v7 = sub_02001288(v0->unk_B854); + int v7 = ListMenu_ProcessInput(v0->unk_B854); if (v7 == 0xffffffff) { break; @@ -539,12 +534,12 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) break; case 12: if (ov92_021D1B70(v0, 5, 1) == 1) { - v0->unk_B85C = sub_02002100(v0->unk_B810, &Unk_ov92_021D292C, ((512 - (18 + 12)) - 9), 7, v0->unk_00); + v0->unk_B85C = Menu_MakeYesNoChoice(v0->unk_B810, &Unk_ov92_021D292C, ((512 - (18 + 12)) - 9), 7, v0->unk_00); *param1 = 13; } break; case 13: { - u32 v9 = sub_02002114(v0->unk_B85C, v0->unk_00); + u32 v9 = Menu_ProcessInputAndHandleExit(v0->unk_B85C, v0->unk_00); switch (v9) { case 0: @@ -574,7 +569,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) ov92_021D2334(v0); Window_FillRectWithColor(&v0->unk_B814, 15, 0, 0, 27 * 8, 4 * 8); - Window_Show(&v0->unk_B834, 0, ((512 - (18 + 12)) - 9), 7); + Window_DrawStandardFrame(&v0->unk_B834, 0, ((512 - (18 + 12)) - 9), 7); if (v0->unk_BB14 != 0) { ov92_021D1DEC(v0); @@ -591,7 +586,7 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) ov92_021D1700(v0); if ((gCoreSys.pressedKeys & PAD_BUTTON_B) || (v0->unk_BAF8 & PAD_BUTTON_B)) { - Window_Clear(&v0->unk_B834, 0); + Window_EraseStandardFrame(&v0->unk_B834, 0); Sound_PlayEffect(1501); Window_FillRectWithColor(&v0->unk_B814, 15, 0, 0, 27 * 8, 4 * 8); @@ -650,11 +645,11 @@ int ov92_021D0EB8(OverlayManager *param0, int *param1) } break; case 17: v0->unk_BAEC = 0; - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); *param1 = 18; break; case 18: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0->unk_BAE8 = 1; ov92_021D1B24(v0); @@ -922,14 +917,14 @@ static void ov92_021D1888(UnkStruct_ov92_021D1B24 *param0, NARC *param1) Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 5, param0->unk_B810, 7, 0, 0, 0, param0->unk_00); Graphics_LoadPaletteFromOpenNARC(param1, 6, 4, 0 * (2 * 16), (2 * 16) * 4, param0->unk_00); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 7, param0->unk_B810, 7, 0, 0, 0, param0->unk_00); - sub_0200DD0C(param0->unk_B810, 6, (512 - (18 + 12)), 6, Options_Frame(param0->unk_08), param0->unk_00); - sub_0200DAA4(param0->unk_B810, 6, ((512 - (18 + 12)) - 9), 7, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_B810, 6, (512 - (18 + 12)), 6, Options_Frame(param0->unk_08), param0->unk_00); + LoadStandardWindowGraphics(param0->unk_B810, 6, ((512 - (18 + 12)) - 9), 7, 0, param0->unk_00); Font_LoadTextPalette(4, 4 * (2 * 16), param0->unk_00); Bg_ClearTilesRange(6, 32, 0, param0->unk_00); Bg_MaskPalette(6, 0x4753); Window_AddFromTemplate(param0->unk_B810, ¶m0->unk_B814, &Unk_ov92_021D2934); Window_FillRectWithColor(¶m0->unk_B814, 15, 0, 0, 27 * 8, 4 * 8); - sub_0200E060(¶m0->unk_B814, 0, (512 - (18 + 12)), 6); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_B814, 0, (512 - (18 + 12)), 6); param0->unk_B864 = 0; @@ -939,7 +934,7 @@ static void ov92_021D1888(UnkStruct_ov92_021D1B24 *param0, NARC *param1) Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 5, param0->unk_B810, 3, 0, 0, 0, param0->unk_00); Graphics_LoadPaletteFromOpenNARC(param1, 6, 0, 0 * (2 * 16), (2 * 16) * 4, param0->unk_00); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 7, param0->unk_B810, 3, 0, 0, 0, param0->unk_00); - sub_0200DAA4(param0->unk_B810, 2, ((512 - (18 + 12)) - 9), 7, 0, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_B810, 2, ((512 - (18 + 12)) - 9), 7, 0, param0->unk_00); Font_LoadTextPalette(0, 4 * (2 * 16), param0->unk_00); Bg_ClearTilesRange(2, 32, 0, param0->unk_00); Bg_MaskPalette(2, 0x0); @@ -1014,69 +1009,69 @@ static BOOL ov92_021D1B70(UnkStruct_ov92_021D1B24 *param0, u32 param1, int param return v0; } -static void ov92_021D1C38(BmpList *param0, u32 param1, u8 param2) +static void ov92_021D1C38(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); } } -static void ov92_021D1C4C(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const UnkStruct_ov84_02240FA8 *param3, const UnkStruct_ov92_021D2958 *param4) +static void ov92_021D1C4C(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const ListMenuTemplate *param3, const UnkStruct_ov92_021D2958 *param4) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1; Window_AddFromTemplate(param0->unk_B810, param1, param2); - param0->unk_B858 = sub_02013A04(param3->unk_10, param0->unk_00); + param0->unk_B858 = StringList_New(param3->count, param0->unk_00); - for (v1 = 0; v1 < param3->unk_10; v1++) { - sub_02013A4C(param0->unk_B858, param0->unk_B860, param4[v1].unk_00, param4[v1].unk_04); + for (v1 = 0; v1 < param3->count; v1++) { + StringList_AddFromMessageBank(param0->unk_B858, param0->unk_B860, param4[v1].unk_00, param4[v1].unk_04); } v0 = *param3; - v0.unk_00 = param0->unk_B858; - v0.unk_0C = param1; - v0.unk_04 = ov92_021D1C38; - param0->unk_B854 = sub_0200112C(&v0, 0, 0, param0->unk_00); + v0.choices = param0->unk_B858; + v0.window = param1; + v0.cursorCallback = ov92_021D1C38; + param0->unk_B854 = ListMenu_New(&v0, 0, 0, param0->unk_00); - Window_Show(v0.unk_0C, 1, ((512 - (18 + 12)) - 9), 7); + Window_DrawStandardFrame(v0.window, 1, ((512 - (18 + 12)) - 9), 7); Window_CopyToVRAM(param1); } -static void ov92_021D1CF4(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const UnkStruct_ov84_02240FA8 *param3, u32 param4, const u8 *param5, u32 param6) +static void ov92_021D1CF4(UnkStruct_ov92_021D1B24 *param0, Window *param1, const WindowTemplate *param2, const ListMenuTemplate *param3, u32 param4, const u8 *param5, u32 param6) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; MessageLoader *v1; int v2; Window_AddFromTemplate(param0->unk_B810, param1, param2); v1 = MessageLoader_Init(0, 26, param4, param0->unk_00); - param0->unk_B858 = sub_02013A04(param6, param0->unk_00); + param0->unk_B858 = StringList_New(param6, param0->unk_00); for (v2 = 0; v2 < param6; v2++) { - sub_02013A4C(param0->unk_B858, v1, param5[v2], v2); + StringList_AddFromMessageBank(param0->unk_B858, v1, param5[v2], v2); } MessageLoader_Free(v1); v0 = *param3; - v0.unk_00 = param0->unk_B858; - v0.unk_10 = param6; - v0.unk_0C = param1; - v0.unk_04 = ov92_021D1C38; + v0.choices = param0->unk_B858; + v0.count = param6; + v0.window = param1; + v0.cursorCallback = ov92_021D1C38; - param0->unk_B854 = sub_0200112C(&v0, 0, 0, param0->unk_00); + param0->unk_B854 = ListMenu_New(&v0, 0, 0, param0->unk_00); - Window_Show(v0.unk_0C, 1, ((512 - (18 + 12)) - 9), 7); + Window_DrawStandardFrame(v0.window, 1, ((512 - (18 + 12)) - 9), 7); Window_CopyToVRAM(param1); } static void ov92_021D1DB4(UnkStruct_ov92_021D1B24 *param0) { - Window_Clear(¶m0->unk_B824, 0); + Window_EraseStandardFrame(¶m0->unk_B824, 0); Window_Remove(¶m0->unk_B824); - sub_02001384(param0->unk_B854, NULL, NULL); - sub_02013A3C(param0->unk_B858); + ListMenu_Free(param0->unk_B854, NULL, NULL); + StringList_Free(param0->unk_B858); } static void ov92_021D1DEC(UnkStruct_ov92_021D1B24 *param0) @@ -1086,7 +1081,7 @@ static void ov92_021D1DEC(UnkStruct_ov92_021D1B24 *param0) Window_AddFromTemplate(param0->unk_B810, ¶m0->unk_B844, &Unk_ov92_021D291C); Window_FillRectWithColor(¶m0->unk_B844, 15, 0, 0, 27 * 8, 6 * 8); - Window_Show(¶m0->unk_B844, 0, ((512 - (18 + 12)) - 9), 7); + Window_DrawStandardFrame(¶m0->unk_B844, 0, ((512 - (18 + 12)) - 9), 7); StringTemplate_SetCountryName(param0->unk_B870, 0, param0->unk_BB14); StringTemplate_SetCityName(param0->unk_B870, 1, param0->unk_BB14, param0->unk_BB18); @@ -1109,7 +1104,7 @@ static void ov92_021D1EBC(UnkStruct_ov92_021D1B24 *param0, int param1, int param Window_AddFromTemplate(param0->unk_B810, ¶m0->unk_B844, &Unk_ov92_021D291C); Window_FillRectWithColor(¶m0->unk_B844, 15, 0, 0, 27 * 8, 6 * 8); - Window_Show(¶m0->unk_B844, 0, ((512 - (18 + 12)) - 9), 7); + Window_DrawStandardFrame(¶m0->unk_B844, 0, ((512 - (18 + 12)) - 9), 7); ov92_021D27E8(param1, param2, v0, v1, param0->unk_00); @@ -1125,7 +1120,7 @@ static void ov92_021D1EBC(UnkStruct_ov92_021D1B24 *param0, int param1, int param static void ov92_021D1F74(UnkStruct_ov92_021D1B24 *param0) { - Window_Clear(¶m0->unk_B844, 0); + Window_EraseStandardFrame(¶m0->unk_B844, 0); Window_Remove(¶m0->unk_B844); } diff --git a/src/overlay093/ov93_021D0D80.c b/src/overlay093/ov93_021D0D80.c index f70d1c886c..da1f640959 100644 --- a/src/overlay093/ov93_021D0D80.c +++ b/src/overlay093/ov93_021D0D80.c @@ -159,7 +159,7 @@ int ov93_021D0E70(OverlayManager *param0, int *param1) sub_0208C120(1, 72); } } else { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } diff --git a/src/overlay093/ov93_021D111C.c b/src/overlay093/ov93_021D111C.c index fad93a8882..7b50bcb89d 100644 --- a/src/overlay093/ov93_021D111C.c +++ b/src/overlay093/ov93_021D111C.c @@ -159,7 +159,7 @@ int ov93_021D120C(OverlayManager *param0, int *param1) sub_0208C120(1, 72); } } else { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } diff --git a/src/overlay094/ov94_0223BCB0.c b/src/overlay094/ov94_0223BCB0.c index 979696b2d8..e0033d429c 100644 --- a/src/overlay094/ov94_0223BCB0.c +++ b/src/overlay094/ov94_0223BCB0.c @@ -4,7 +4,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0203E0FC.h" #include "struct_defs/struct_02099F80.h" @@ -30,19 +29,19 @@ #include "gx_layers.h" #include "heap.h" #include "inlines.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "pokemon_icon.h" +#include "render_window.h" #include "sprite_resource.h" #include "string_template.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -168,7 +167,7 @@ int ov94_0223BE2C(OverlayManager *param0, int *param1) } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 3; } break; @@ -176,7 +175,7 @@ int ov94_0223BE2C(OverlayManager *param0, int *param1) *param1 = (*Unk_ov94_0224674C[v0->unk_14][1])(v0, *param1); break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (v0->unk_104) { ov94_0223C4E0(v0); ov94_02243EF8(v0, TrainerInfo_Gender(v0->unk_00->unk_1C)); @@ -407,7 +406,7 @@ static const WindowTemplate Unk_ov94_022459F8 = { 0x0 }; -UIControlData *ov94_0223C3C0(BgConfig *param0, int param1, int param2) +Menu *ov94_0223C3C0(BgConfig *param0, int param1, int param2) { WindowTemplate v0; @@ -415,7 +414,7 @@ UIControlData *ov94_0223C3C0(BgConfig *param0, int param1, int param2) v0.tilemapTop = param1; v0.baseTile = param2; - return sub_02002100(param0, &v0, (1 + (18 + 12)), 11, 62); + return Menu_MakeYesNoChoice(param0, &v0, (1 + (18 + 12)), 11, 62); } void ov94_0223C3F4(UnkStruct_ov94_0223FD4C *param0, int param1, int param2) @@ -550,13 +549,13 @@ static void ov94_0223C598(UnkStruct_ov94_0223FD4C *param0) void ov94_0223C5D8(UnkStruct_ov94_0223FD4C *param0) { - param0->unk_10DC = sub_0200E7FC(¶m0->unk_F5C, 1); + param0->unk_10DC = Window_AddWaitDial(¶m0->unk_F5C, 1); } void ov94_0223C5F4(UnkStruct_ov94_0223FD4C *param0) { if (param0->unk_10DC != NULL) { - DeleteWaitDial(param0->unk_10DC); + DestroyWaitDial(param0->unk_10DC); param0->unk_10DC = NULL; } } diff --git a/src/overlay094/ov94_0223C610.c b/src/overlay094/ov94_0223C610.c index 7246876028..666660fa3b 100644 --- a/src/overlay094/ov94_0223C610.c +++ b/src/overlay094/ov94_0223C610.c @@ -16,15 +16,15 @@ #include "game_options.h" #include "graphics.h" #include "gx_layers.h" +#include "menu.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020393C8.h" @@ -87,7 +87,7 @@ int ov94_0223C610(UnkStruct_ov94_0223FD4C *param0, int param1) if (param0->unk_34 == 0) { ov94_0223C85C(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 62); param0->unk_2C = 0; param0->unk_34 = 1; @@ -95,9 +95,9 @@ int ov94_0223C610(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_02243FA8(param0, TrainerInfo_Gender(param0->unk_00->unk_1C)); } else { if (param0->unk_1110 == 1) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 62); } else { - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); } param0->unk_2C = 5; @@ -278,8 +278,8 @@ static void ov94_0223C888(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPaletteFromOpenNARC(v1, 4, 0, 0, 16 * 3 * 2, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 14, v0, 1, 0, 16 * 6 * 0x20, 1, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 30, v0, 1, 0, 32 * 24 * 2, 1, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 29, v0, 2, 0, 32 * 24 * 2, 1, 62); @@ -386,7 +386,7 @@ static int ov94_0223CB90(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223CBA0(UnkStruct_ov94_0223FD4C *param0) { - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); param0->unk_2C = 3; return 3; @@ -394,7 +394,7 @@ static int ov94_0223CBA0(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223CBC4(UnkStruct_ov94_0223FD4C *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_2C = 5; } @@ -403,7 +403,7 @@ static int ov94_0223CBC4(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223CBD8(UnkStruct_ov94_0223FD4C *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_2C = 5; } @@ -500,9 +500,9 @@ static int ov94_0223CE00(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223CE14(UnkStruct_ov94_0223FD4C *param0) { if (param0->unk_18 == 0) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 62); } else { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); } param0->unk_2C = 0; @@ -520,16 +520,16 @@ static int ov94_0223CE5C(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223CE7C(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { - sub_0200E084(¶m0->unk_109C, 1); + Window_EraseMessageBox(¶m0->unk_109C, 1); Window_ClearAndCopyToVRAM(¶m0->unk_109C); CellActor_SetAnimateFlag(param0->unk_E20, 1); param0->unk_2C = 5; } else { - sub_0200E084(¶m0->unk_109C, 1); + Window_EraseMessageBox(¶m0->unk_109C, 1); Window_ClearAndCopyToVRAM(¶m0->unk_109C); ov94_0223C4C0(param0, 0, 0); param0->unk_2C = 7; @@ -584,7 +584,7 @@ static void ov94_0223CF80(UnkStruct_ov94_0223FD4C *param0, int param1, int param MessageLoader_GetStrbuf(param0->unk_B90, param1, param0->unk_BAC); Window_FillTilemap(¶m0->unk_F5C, 0xf0f); - sub_0200E060(¶m0->unk_F5C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_F5C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F5C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); } @@ -595,7 +595,7 @@ static void ov94_0223CFD8(UnkStruct_ov94_0223FD4C *param0, int param1, int param MessageLoader_GetStrbuf(param0->unk_B90, param1, param0->unk_BAC); Window_FillTilemap(¶m0->unk_109C, 0xf0f); - sub_0200E060(¶m0->unk_109C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_109C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_109C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); } diff --git a/src/overlay094/ov94_0223D0C4.c b/src/overlay094/ov94_0223D0C4.c index 5e3b01ae85..20e4e1d47f 100644 --- a/src/overlay094/ov94_0223D0C4.c +++ b/src/overlay094/ov94_0223D0C4.c @@ -5,7 +5,6 @@ #include #include "struct_defs/archived_sprite.h" -#include "struct_defs/struct_02081CF4.h" #include "overlay094/const_ov94_02245FD8.h" #include "overlay094/ov94_0223BCB0.h" @@ -23,20 +22,20 @@ #include "graphics.h" #include "heap.h" #include "item.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" -#include "unk_02013A04.h" #include "unk_020393C8.h" static void ov94_0223D1D4(BgConfig *param0); @@ -89,7 +88,7 @@ int ov94_0223D0C4(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_02242368(param0->unk_B90, param0->unk_B94, param0->unk_B8C, ¶m0->unk_FCC[7], param0->unk_12C.unk_F0.unk_00, param0->unk_12C.unk_F0.unk_02, ov94_02242970(param0->unk_12C.unk_F0.unk_03, param0->unk_12C.unk_F0.unk_04, 0)); ov94_0223DB2C((Pokemon *)param0->unk_12C.unk_00.unk_00); - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); param0->unk_2C = 0; @@ -240,8 +239,8 @@ static void ov94_0223D2E8(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPaletteFromOpenNARC(v1, 7, 0, 0, 16 * 3 * 2, 62); Graphics_LoadPaletteFromOpenNARC(v1, 5, 4, 0, 16 * 8 * 2, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 17, v0, 1, 0, 16 * 5 * 0x20, 1, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 25, v0, 1, 0, 32 * 24 * 2, 1, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 15, v0, 5, 0, 32 * 21 * 0x40, 1, 62); @@ -366,7 +365,7 @@ static int ov94_0223D5B8(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223D618(UnkStruct_ov94_0223FD4C *param0) { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); param0->unk_2C = 0; return 4; @@ -382,12 +381,12 @@ static int ov94_0223D640(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223D664(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { param0->unk_2C = 0; - sub_0200E084(¶m0->unk_F5C, 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); } else { param0->unk_2C = 2; param0->unk_1110 = 1; @@ -402,26 +401,26 @@ static int ov94_0223D664(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223D6B8(UnkStruct_ov94_0223FD4C *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 2; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; - param0->unk_10CC = sub_02013A04(2, 62); + param0->unk_10CC = StringList_New(2, 62); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 54, 1); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 55, 2); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 54, 1); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 55, 2); - v0.unk_00 = param0->unk_10CC; - v0.unk_04 = ¶m0->unk_F9C[0]; + v0.choices = param0->unk_10CC; + v0.window = ¶m0->unk_F9C[0]; - Window_Show(¶m0->unk_F9C[0], 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_F9C[0], 0, (1 + (18 + 12)), 11); - param0->unk_10D4 = sub_02001B7C(&v0, 9, 0, 0, 62, PAD_BUTTON_B); + param0->unk_10D4 = Menu_NewAndCopyToVRAM(&v0, 9, 0, 0, 62, PAD_BUTTON_B); param0->unk_2C = 8; return 3; @@ -429,11 +428,11 @@ static int ov94_0223D6B8(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223D754(UnkStruct_ov94_0223FD4C *param0) { - switch (sub_02001BE0(param0->unk_10D4)) { + switch (Menu_ProcessInput(param0->unk_10D4)) { case 1: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); { Pokemon *v0 = (Pokemon *)param0->unk_12C.unk_00.unk_00; @@ -454,9 +453,9 @@ static int ov94_0223D754(UnkStruct_ov94_0223FD4C *param0) break; case 2: case 0xfffffffe: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); param0->unk_2C = 2; @@ -499,7 +498,7 @@ static void ov94_0223D88C(UnkStruct_ov94_0223FD4C *param0, int param1, int param v0 = MessageLoader_GetNewStrbuf(param0->unk_B90, param1); StringTemplate_Format(param0->unk_B8C, param0->unk_BAC, v0); Window_FillTilemap(¶m0->unk_F5C, 0xf0f); - sub_0200E060(¶m0->unk_F5C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_F5C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F5C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); diff --git a/src/overlay094/ov94_0223DC04.c b/src/overlay094/ov94_0223DC04.c index 6be2d0712a..e20a3d89d9 100644 --- a/src/overlay094/ov94_0223DC04.c +++ b/src/overlay094/ov94_0223DC04.c @@ -19,15 +19,15 @@ #include "font.h" #include "game_options.h" #include "graphics.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020393C8.h" @@ -81,7 +81,7 @@ int ov94_0223DC04(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_0223E358(param0->unk_B90, ¶m0->unk_FCC[7]); ov94_0223E240(param0); - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); param0->unk_2C = 0; return 2; @@ -207,8 +207,8 @@ static void ov94_0223DE04(UnkStruct_ov94_0223FD4C *param0) BgConfig *v0 = param0->unk_04; Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayer(104, 17, v0, 1, 0, 16 * 5 * 0x20, 1, 62); Graphics_LoadPalette(104, 7, 0, 0, 16 * 3 * 2, 62); } @@ -363,7 +363,7 @@ static int ov94_0223E0A4(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223E188(UnkStruct_ov94_0223FD4C *param0) { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); param0->unk_2C = 0; return 4; @@ -379,7 +379,7 @@ static int ov94_0223E1B0(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223E1D0(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -432,7 +432,7 @@ static void ov94_0223E300(UnkStruct_ov94_0223FD4C *param0, int param1, int param MessageLoader_GetStrbuf(param0->unk_B90, param1, param0->unk_BAC); Window_FillTilemap(¶m0->unk_F5C, 0xf0f); - sub_0200E060(¶m0->unk_F5C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_F5C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F5C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); } diff --git a/src/overlay094/ov94_0223E46C.c b/src/overlay094/ov94_0223E46C.c index ccd46cebfd..2c85c18b26 100644 --- a/src/overlay094/ov94_0223E46C.c +++ b/src/overlay094/ov94_0223E46C.c @@ -23,17 +23,17 @@ #include "graphics.h" #include "heap.h" #include "inlines.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_0202DA40.h" #include "unk_020366A0.h" #include "unk_020393C8.h" @@ -141,7 +141,7 @@ int ov94_0223E46C(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_022422B8(¶m0->unk_FCC[5], param0->unk_B90, ov94_02242970(param0->unk_B7A.unk_03, param0->unk_B7A.unk_04, 1), 0, 0, TEXT_COLOR(1, 2, 0), 1); ov94_0224218C(¶m0->unk_10AC[1], param0->unk_BA0, param0->unk_B90, param0->unk_11B0, 0, 0, TEXT_COLOR(1, 2, 0)); - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); param0->unk_2C = 0; return 2; @@ -276,8 +276,8 @@ static void ov94_0223E6B8(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPaletteFromOpenNARC(v1, 3, 0, 0, 16 * 3 * 2, 62); Graphics_LoadPaletteFromOpenNARC(v1, 5, 4, 0, 16 * 8 * 2, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 13, v0, 1, 0, 16 * 5 * 0x20, 1, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 26, v0, 1, 0, 32 * 24 * 2, 1, 62); NARC_dtor(v1); @@ -576,7 +576,7 @@ static int ov94_0223ED94(UnkStruct_ov94_0223FD4C *param0) case 6: case 7: param0->unk_118 = v1; - sub_020057A4(1535, 0); + Sound_StopEffect(1535, 0); ov94_02244234(param0, v1, 1); param0->unk_2C = 20; break; @@ -733,7 +733,7 @@ static void ov94_0223EFAC(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223F0A8(UnkStruct_ov94_0223FD4C *param0) { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); param0->unk_2C = 0; @@ -775,16 +775,16 @@ static int ov94_0223F190(UnkStruct_ov94_0223FD4C *param0) case 7: case 8: case 9: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); - sub_02013A3C(param0->unk_10CC); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); + StringList_Free(param0->unk_10CC); Sound_PlayEffect(1500); param0->unk_2C = 6; break; case 0xfffffffe: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Window_Remove(¶m0->unk_F9C[1]); Sound_PlayEffect(1500); @@ -812,18 +812,18 @@ static int ov94_0223F2B0(UnkStruct_ov94_0223FD4C *param0) case 0xffffffff: break; case 0xfffffffe: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[1], 0); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[1], 0); Sound_PlayEffect(1500); param0->unk_2C = 4; ov94_02242AC4(¶m0->unk_111C, param0->unk_10E4->unk_06 + param0->unk_10E4->unk_04, param0->unk_10E4->unk_0A, param0->unk_10E4->unk_08); break; default: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - Window_Clear(¶m0->unk_F9C[1], 0); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseStandardFrame(¶m0->unk_F9C[1], 0); Window_Remove(¶m0->unk_F9C[0]); Window_Remove(¶m0->unk_F9C[1]); @@ -873,10 +873,10 @@ static int ov94_0223F4B0(UnkStruct_ov94_0223FD4C *param0) switch (v0 = ov94_02242A6C(param0->unk_10D8, ¶m0->unk_108)) { case 0xfffffffe: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); param0->unk_2C = 0; @@ -884,9 +884,9 @@ static int ov94_0223F4B0(UnkStruct_ov94_0223FD4C *param0) case 0: case 1: case 2: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); @@ -930,18 +930,18 @@ static int ov94_0223F638(UnkStruct_ov94_0223FD4C *param0) break; case 0xfffffffe: case 11: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); param0->unk_2C = 0; break; default: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); ov94_02242934(¶m0->unk_B7A, v0, 1); @@ -985,17 +985,17 @@ static int ov94_0223F7C0(UnkStruct_ov94_0223FD4C *param0) if (v0 == 0xffffffff) { (void)0; } else if ((v0 == 0xfffffffe) || (v0 == (Unk_ov94_02245FD4 + 1))) { - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); param0->unk_2C = 0; } else { - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); @@ -1018,7 +1018,7 @@ static int ov94_0223F8B4(UnkStruct_ov94_0223FD4C *param0) static int ov94_0223F8D8(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1077,7 +1077,7 @@ static void ov94_0223F9A4(UnkStruct_ov94_0223FD4C *param0, int param1, int param MessageLoader_GetStrbuf(param0->unk_B90, param1, param0->unk_BAC); Window_FillTilemap(¶m0->unk_F5C, 0xf0f); - sub_0200E060(¶m0->unk_F5C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_F5C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F5C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); } diff --git a/src/overlay094/ov94_0223FB48.c b/src/overlay094/ov94_0223FB48.c index 8b2e0f476e..b8c806c881 100644 --- a/src/overlay094/ov94_0223FB48.c +++ b/src/overlay094/ov94_0223FB48.c @@ -4,9 +4,11 @@ #include #include +#include "consts/items.h" +#include "consts/species.h" + #include "struct_decls/struct_020797DC_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02081CF4.h" #include "overlay094/ov94_0223BCB0.h" #include "overlay094/ov94_022414B8.h" @@ -26,19 +28,19 @@ #include "gx_layers.h" #include "heap.h" #include "item.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "party.h" #include "pokemon.h" #include "pokemon_icon.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_020393C8.h" #include "unk_020797C8.h" @@ -122,9 +124,9 @@ int ov94_0223FB48(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_0223FE24(param0); if (param0->unk_20 == 8) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 62); } else { - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); } ov94_02240FA0(param0, param0->unk_110); @@ -298,8 +300,8 @@ static void ov94_0223FD4C(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPaletteFromOpenNARC(v1, 2, 0, 0, 16 * 3 * 2, 62); Graphics_LoadPaletteFromOpenNARC(v1, 5, 4, 0, 16 * 8 * 2, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 12, v0, 1, 0, 16 * 5 * 0x20, 1, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 24, v0, 1, 0, 32 * 24 * 2, 1, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 29, v0, 2, 0, 32 * 24 * 2, 1, 62); @@ -495,7 +497,7 @@ static void ov94_02240268(UnkStruct_ov94_0223FD4C *param0) static int ov94_022402A8(UnkStruct_ov94_0223FD4C *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_2C = 1; } @@ -675,27 +677,27 @@ static int ov94_022405CC(int param0, int param1, int param2) static int ov94_022405DC(UnkStruct_ov94_0223FD4C *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 3; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 3; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; - param0->unk_10CC = sub_02013A04(3, 62); + param0->unk_10CC = StringList_New(3, 62); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 94, 1); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 95, 2); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 96, 3); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 94, 1); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 95, 2); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 96, 3); - v0.unk_00 = param0->unk_10CC; - v0.unk_04 = ¶m0->unk_F9C[0]; + v0.choices = param0->unk_10CC; + v0.window = ¶m0->unk_F9C[0]; - Window_Show(¶m0->unk_F9C[0], 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_F9C[0], 1, (1 + (18 + 12)), 11); - param0->unk_10D4 = sub_02001B7C(&v0, 9, 0, 0, 62, PAD_BUTTON_B); + param0->unk_10D4 = Menu_NewAndCopyToVRAM(&v0, 9, 0, 0, 62, PAD_BUTTON_B); param0->unk_2C = 8; return 3; @@ -705,18 +707,18 @@ static int ov94_02240688(UnkStruct_ov94_0223FD4C *param0) { BoxPokemon *v0; - switch (sub_02001BE0(param0->unk_10D4)) { + switch (Menu_ProcessInput(param0->unk_10D4)) { case 1: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); param0->unk_2C = 2; ov94_0223C4C0(param0, 8, 5); break; case 2: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); v0 = ov94_022411DC(param0->unk_00->unk_08, param0->unk_00->unk_0C, param0->unk_110, param0->unk_112); @@ -753,10 +755,10 @@ static int ov94_02240688(UnkStruct_ov94_0223FD4C *param0) break; case 3: case 0xfffffffe: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); param0->unk_2C = 1; break; } @@ -766,28 +768,28 @@ static int ov94_02240688(UnkStruct_ov94_0223FD4C *param0) static int ov94_02240830(UnkStruct_ov94_0223FD4C *param0) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 3; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 3; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; - param0->unk_10CC = sub_02013A04(3, 62); + param0->unk_10CC = StringList_New(3, 62); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 84, 1); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 85, 2); - sub_02013A4C(param0->unk_10CC, param0->unk_B90, 86, 3); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 84, 1); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 85, 2); + StringList_AddFromMessageBank(param0->unk_10CC, param0->unk_B90, 86, 3); - v0.unk_00 = param0->unk_10CC; - v0.unk_04 = ¶m0->unk_F9C[0]; + v0.choices = param0->unk_10CC; + v0.window = ¶m0->unk_F9C[0]; - Window_FillTilemap(v0.unk_04, 0xf0f); - Window_Show(¶m0->unk_F9C[0], 1, (1 + (18 + 12)), 11); + Window_FillTilemap(v0.window, 0xf0f); + Window_DrawStandardFrame(¶m0->unk_F9C[0], 1, (1 + (18 + 12)), 11); - param0->unk_10D4 = sub_02001B7C(&v0, 9, 0, 0, 62, PAD_BUTTON_B); + param0->unk_10D4 = Menu_NewAndCopyToVRAM(&v0, 9, 0, 0, 62, PAD_BUTTON_B); param0->unk_2C = 10; return 3; @@ -797,18 +799,18 @@ static int ov94_022408E8(UnkStruct_ov94_0223FD4C *param0) { BoxPokemon *v0; - switch (sub_02001BE0(param0->unk_10D4)) { + switch (Menu_ProcessInput(param0->unk_10D4)) { case 1: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); param0->unk_2C = 2; ov94_0223C4C0(param0, 8, 6); break; case 2: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); v0 = ov94_022411DC(param0->unk_00->unk_08, param0->unk_00->unk_0C, param0->unk_110, param0->unk_112); @@ -842,10 +844,10 @@ static int ov94_022408E8(UnkStruct_ov94_0223FD4C *param0) break; case 3: case 0xfffffffe: - sub_02001BC4(param0->unk_10D4, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + Menu_Free(param0->unk_10D4, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); param0->unk_2C = 1; break; } @@ -856,10 +858,10 @@ static int ov94_022408E8(UnkStruct_ov94_0223FD4C *param0) static int ov94_02240A6C(UnkStruct_ov94_0223FD4C *param0) { if ((param0->unk_18 == 0) || (param0->unk_18 == 8)) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 62); param0->unk_1110 = 1; } else { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); } param0->unk_2C = 0; @@ -877,7 +879,7 @@ static int ov94_02240AC4(UnkStruct_ov94_0223FD4C *param0) static int ov94_02240AE8(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -909,11 +911,11 @@ static int ov94_02240B4C(UnkStruct_ov94_0223FD4C *param0) static int ov94_02240B70(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { - sub_0200E084(¶m0->unk_109C, 0); + Window_EraseMessageBox(¶m0->unk_109C, 0); param0->unk_2C = 1; } else { ov94_02240BB0(param0); @@ -967,11 +969,11 @@ static int ov94_02240C84(UnkStruct_ov94_0223FD4C *param0) static int ov94_02240CA8(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { - sub_0200E084(¶m0->unk_109C, 0); + Window_EraseMessageBox(¶m0->unk_109C, 0); param0->unk_2C = 1; } else { param0->unk_114 = ov94_022411DC(param0->unk_00->unk_08, param0->unk_00->unk_0C, param0->unk_110, param0->unk_112); @@ -995,7 +997,7 @@ static int ov94_02240D08(UnkStruct_ov94_0223FD4C *param0) static int ov94_02240D28(UnkStruct_ov94_0223FD4C *param0) { if (Text_IsPrinterActive(param0->unk_BE0) == 0) { - sub_0200E084(¶m0->unk_109C, 0); + Window_EraseMessageBox(¶m0->unk_109C, 0); param0->unk_2C = param0->unk_30; } @@ -1017,7 +1019,7 @@ static void ov94_02240D58(UnkStruct_ov94_0223FD4C *param0, int param1, int param } Window_FillTilemap(v0, 0xf0f); - sub_0200E060(v0, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(v0, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(v0, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); @@ -1274,9 +1276,9 @@ static int ov94_02241278(BoxPokemon *param0) if (v2 > 0) { switch (v1) { - case 487: - case 492: - case 479: + case SPECIES_GIRATINA: + case SPECIES_SHAYMIN: + case SPECIES_ROTOM: return 1; } } @@ -1298,7 +1300,7 @@ static int ov94_022412C8(BoxPokemon *param0) BoxPokemon_ExitDecryptionContext(param0, v0); switch (v1) { - case 112: + case ITEM_GRISEOUS_ORB: return 1; } diff --git a/src/overlay094/ov94_022414B8.c b/src/overlay094/ov94_022414B8.c index 8d1822869d..512803b570 100644 --- a/src/overlay094/ov94_022414B8.c +++ b/src/overlay094/ov94_022414B8.c @@ -7,11 +7,7 @@ #include "constants/species.h" #include "struct_decls/pokedexdata_decl.h" -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay094/const_ov94_02245FD4.h" #include "overlay094/const_ov94_02245FD8.h" #include "overlay094/ov94_0223BCB0.h" @@ -31,20 +27,20 @@ #include "game_options.h" #include "graphics.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_0202631C.h" #include "unk_0202C858.h" #include "unk_020393C8.h" @@ -82,7 +78,7 @@ static int ov94_02242040(UnkStruct_ov94_0223FD4C *param0); static int ov94_02242068(UnkStruct_ov94_0223FD4C *param0); static int ov94_0224208C(UnkStruct_ov94_0223FD4C *param0); static void ov94_02242668(UnkStruct_ov94_0223BA88 *param0, UnkStruct_ov94_0223FD4C *param1); -static int ov94_02242718(ResourceMetadata **param0, MessageLoader *param1, MessageLoader *param2, u16 *param3, u8 *param4, int param5, int param6, PokedexData *param7); +static int ov94_02242718(StringList **param0, MessageLoader *param1, MessageLoader *param2, u16 *param3, u8 *param4, int param5, int param6, PokedexData *param7); static TextColor ov94_022421E8(int param0, u32 param1); static int (*Unk_ov94_0224695C[])(UnkStruct_ov94_0223FD4C *) = { @@ -287,7 +283,7 @@ int ov94_022414B8(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_0224170C(param0); ov94_022417A0(param0); - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); ov94_02245934(param0); ov94_022422D4(param0->unk_B90, param0->unk_B94, param0->unk_B8C, ¶m0->unk_FCC[0], 0, 3, -1); @@ -328,7 +324,7 @@ static void ov94_0224158C(UnkStruct_ov94_0223FD4C *param0, int param1, int param StringTemplate_Format(param0->unk_B8C, param0->unk_BAC, v0); Window_FillTilemap(¶m0->unk_F5C, 0xf0f); - sub_0200E060(¶m0->unk_F5C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_F5C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F5C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param2, NULL); @@ -458,8 +454,8 @@ static void ov94_0224170C(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPalette(104, 1, 0, 0, 16 * 3 * 2, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayer(104, 11, v0, 1, 0, 16 * 5 * 0x20, 1, 62); Graphics_LoadTilemapToBgLayer(104, 23, v0, 1, 0, 32 * 24 * 2, 1, 62); } @@ -520,7 +516,7 @@ static void ov94_02241920(UnkStruct_ov94_0223FD4C *param0) static int ov94_0224195C(UnkStruct_ov94_0223FD4C *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { ov94_0224158C(param0, 9, TEXT_SPEED_FAST, 0, 0xf0f); ov94_0223C3F4(param0, 16, 1); } @@ -567,16 +563,16 @@ static int ov94_02241A58(UnkStruct_ov94_0223FD4C *param0) case 7: case 8: case 9: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); - sub_02013A3C(param0->unk_10CC); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); + StringList_Free(param0->unk_10CC); param0->unk_2C = 5; Sound_PlayEffect(1500); break; case 0xfffffffe: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_06, ¶m0->unk_10E4->unk_04); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Window_Remove(¶m0->unk_F9C[1]); ov94_0223C4C0(param0, 5, 5); @@ -626,9 +622,9 @@ static int ov94_02241BAC(UnkStruct_ov94_0223FD4C *param0) case 0xffffffff: break; case 0xfffffffe: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[1], 0); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[1], 0); Window_Remove(¶m0->unk_F9C[0]); Window_Remove(¶m0->unk_F9C[1]); param0->unk_2C = 0; @@ -636,10 +632,10 @@ static int ov94_02241BAC(UnkStruct_ov94_0223FD4C *param0) ov94_02242AC4(¶m0->unk_111C, param0->unk_10E4->unk_06 + param0->unk_10E4->unk_04, param0->unk_10E4->unk_0A, param0->unk_10E4->unk_08); break; default: - sub_02001384(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - Window_Clear(¶m0->unk_F9C[1], 0); + ListMenu_Free(param0->unk_10D8, ¶m0->unk_10E4->unk_0A, ¶m0->unk_10E4->unk_08); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseStandardFrame(¶m0->unk_F9C[1], 0); Window_Remove(¶m0->unk_F9C[0]); Window_Remove(¶m0->unk_F9C[1]); param0->unk_B74.unk_00 = v0; @@ -688,10 +684,10 @@ static int ov94_02241DA0(UnkStruct_ov94_0223FD4C *param0) switch (v0 = ov94_02242A6C(param0->unk_10D8, ¶m0->unk_108)) { case 0xfffffffe: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); param0->unk_2C = 0; @@ -700,9 +696,9 @@ static int ov94_02241DA0(UnkStruct_ov94_0223FD4C *param0) case 0: case 1: case 2: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); param0->unk_B74.unk_02 = v0 + 1; @@ -743,10 +739,10 @@ static int ov94_02241F28(UnkStruct_ov94_0223FD4C *param0) break; case 0xfffffffe: case 12: - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); - sub_0200E084(¶m0->unk_F5C, 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); + Window_EraseMessageBox(¶m0->unk_F5C, 0); Window_Remove(¶m0->unk_F9C[0]); Sound_PlayEffect(1500); @@ -758,9 +754,9 @@ static int ov94_02241F28(UnkStruct_ov94_0223FD4C *param0) break; default: Sound_PlayEffect(1500); - sub_02001384(param0->unk_10D8, NULL, NULL); - sub_02013A3C(param0->unk_10CC); - Window_Clear(¶m0->unk_F9C[0], 0); + ListMenu_Free(param0->unk_10D8, NULL, NULL); + StringList_Free(param0->unk_10CC); + Window_EraseStandardFrame(¶m0->unk_F9C[0], 0); Window_Remove(¶m0->unk_F9C[0]); ov94_02242934(¶m0->unk_B74, v0, 0); param0->unk_2C = 13; @@ -789,7 +785,7 @@ static int ov94_02242068(UnkStruct_ov94_0223FD4C *param0) static int ov94_0224208C(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -809,10 +805,10 @@ static int ov94_0224208C(UnkStruct_ov94_0223FD4C *param0) static int ov94_022420E4(UnkStruct_ov94_0223FD4C *param0) { if (param0->unk_18 == 0) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 62); param0->unk_1110 = 1; } else { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); } param0->unk_2C = 0; @@ -1073,7 +1069,7 @@ static void ov94_02242668(UnkStruct_ov94_0223BA88 *param0, UnkStruct_ov94_0223FD param0->unk_F0 = param1->unk_B74; } -static const UnkStruct_ov84_02240FA8 Unk_ov94_0224608C = { +static const ListMenuTemplate Unk_ov94_0224608C = { NULL, NULL, NULL, @@ -1095,24 +1091,24 @@ static const UnkStruct_ov84_02240FA8 Unk_ov94_0224608C = { NULL }; -BmpList *ov94_022426A8(UnkStruct_ov94_0223FD4C *param0, ResourceMetadata **param1, Window *param2, MessageLoader *param3) +ListMenu *ov94_022426A8(UnkStruct_ov94_0223FD4C *param0, StringList **param1, Window *param2, MessageLoader *param3) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1; - *param1 = sub_02013A04(9, 62); + *param1 = StringList_New(9, 62); for (v1 = 0; v1 < 9; v1++) { - sub_02013A4C(*param1, param3, 104 + v1, v1 + 1); + StringList_AddFromMessageBank(*param1, param3, 104 + v1, v1 + 1); } v0 = Unk_ov94_0224608C; - v0.unk_00 = *param1; - v0.unk_0C = param2; + v0.choices = *param1; + v0.window = param2; - Window_Show(param2, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param2, 0, (1 + (18 + 12)), 11); - return sub_0200112C(&v0, param0->unk_10E4->unk_06, param0->unk_10E4->unk_04, 62); + return ListMenu_New(&v0, param0->unk_10E4->unk_06, param0->unk_10E4->unk_04, 62); } static u16 Unk_ov94_02246928[] = { @@ -1128,7 +1124,7 @@ static u16 Unk_ov94_02246928[] = { 0x1ED }; -static int ov94_02242718(ResourceMetadata **param0, MessageLoader *param1, MessageLoader *param2, u16 *param3, u8 *param4, int param5, int param6, PokedexData *param7) +static int ov94_02242718(StringList **param0, MessageLoader *param1, MessageLoader *param2, u16 *param3, u8 *param4, int param5, int param6, PokedexData *param7) { int v0, v1, v2 = 0; int v3 = Unk_ov94_02246928[param6 + 1] - Unk_ov94_02246928[param6]; @@ -1138,42 +1134,42 @@ static int ov94_02242718(ResourceMetadata **param0, MessageLoader *param1, Messa for (v0 = 0; v0 < v3; v0++) { if (v4) { - if (Pokedex_HasEncountered(param7, param3[v1 + v0])) { + if (Pokedex_HasSeenSpecies(param7, param3[v1 + v0])) { v2++; } } else { if (param4[param3[v1 + v0]]) { - if (Pokedex_HasEncountered(param7, param3[v1 + v0])) { + if (Pokedex_HasSeenSpecies(param7, param3[v1 + v0])) { v2++; } } } } - *param0 = sub_02013A04(v2 + 1, 62); + *param0 = StringList_New(v2 + 1, 62); for (v0 = 0; v0 < v3; v0++) { if (v4) { - if (Pokedex_HasEncountered(param7, param3[v1 + v0])) { - sub_02013A4C(*param0, param1, param3[v1 + v0], param3[v1 + v0]); + if (Pokedex_HasSeenSpecies(param7, param3[v1 + v0])) { + StringList_AddFromMessageBank(*param0, param1, param3[v1 + v0], param3[v1 + v0]); } } else { if (param4[param3[v1 + v0]]) { - if (Pokedex_HasEncountered(param7, param3[v1 + v0])) { - sub_02013A4C(*param0, param1, param3[v1 + v0], param3[v1 + v0]); + if (Pokedex_HasSeenSpecies(param7, param3[v1 + v0])) { + StringList_AddFromMessageBank(*param0, param1, param3[v1 + v0], param3[v1 + v0]); } } } } - sub_02013A4C(*param0, param2, 121, 0xfffffffe); + StringList_AddFromMessageBank(*param0, param2, 121, 0xfffffffe); return v2 + 1; } -BmpList *ov94_022427C0(UnkStruct_ov94_0223FD4C *param0, ResourceMetadata **param1, Window *param2, MessageLoader *param3, MessageLoader *param4, UnkStruct_ov94_0223FD4C_sub3 *param5, PokedexData *param6) +ListMenu *ov94_022427C0(UnkStruct_ov94_0223FD4C *param0, StringList **param1, Window *param2, MessageLoader *param3, MessageLoader *param4, UnkStruct_ov94_0223FD4C_sub3 *param5, PokedexData *param6) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1, v2, v3; Window_FillTilemap(param2, 0xf0f); @@ -1182,13 +1178,13 @@ BmpList *ov94_022427C0(UnkStruct_ov94_0223FD4C *param0, ResourceMetadata **param v2 = ov94_02242718(param1, param4, param3, param5->unk_18, param5->unk_14, param5->unk_1C, v3, param6); v0 = Unk_ov94_0224608C; - v0.unk_10 = v2; - v0.unk_00 = *param1; - v0.unk_0C = param2; + v0.count = v2; + v0.choices = *param1; + v0.window = param2; - Window_Show(param2, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param2, 0, (1 + (18 + 12)), 11); - return sub_0200112C(&v0, param0->unk_111C.unk_04[v3], param0->unk_111C.unk_16[v3], 62); + return ListMenu_New(&v0, param0->unk_111C.unk_04[v3], param0->unk_111C.unk_16[v3], 62); } static Unk_ov94_0224693C[][2] = { @@ -1198,30 +1194,30 @@ static Unk_ov94_0224693C[][2] = { { 0x79, 0xFFFFFFFE } }; -BmpList *ov94_02242840(ResourceMetadata **param0, Window *param1, MessageLoader *param2) +ListMenu *ov94_02242840(StringList **param0, Window *param1, MessageLoader *param2) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1; - *param0 = sub_02013A04(4, 62); + *param0 = StringList_New(4, 62); for (v1 = 0; v1 < 4; v1++) { - sub_02013A4C(*param0, param2, Unk_ov94_0224693C[v1][0], Unk_ov94_0224693C[v1][1]); + StringList_AddFromMessageBank(*param0, param2, Unk_ov94_0224693C[v1][0], Unk_ov94_0224693C[v1][1]); } v0 = Unk_ov94_0224608C; - v0.unk_10 = 4; - v0.unk_00 = *param0; - v0.unk_0C = param1; + v0.count = 4; + v0.choices = *param0; + v0.window = param1; - Window_Show(param1, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param1, 0, (1 + (18 + 12)), 11); - return sub_0200112C(&v0, 0, 0, 62); + return ListMenu_New(&v0, 0, 0, 62); } -BmpList *ov94_022428B0(ResourceMetadata **param0, Window *param1, MessageLoader *param2, int param3) +ListMenu *ov94_022428B0(StringList **param0, Window *param1, MessageLoader *param2, int param3) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1; const UnkStruct_ov94_022460AC *v2; int v3; @@ -1234,20 +1230,20 @@ BmpList *ov94_022428B0(ResourceMetadata **param0, Window *param1, MessageLoader v3 = (NELEMS(Unk_ov94_022460AC)); } - *param0 = sub_02013A04(v3, 62); + *param0 = StringList_New(v3, 62); for (v1 = 0; v1 < v3; v1++) { - sub_02013A4C(*param0, param2, v2[v1].unk_00, v1); + StringList_AddFromMessageBank(*param0, param2, v2[v1].unk_00, v1); } v0 = Unk_ov94_0224608C; - v0.unk_10 = v3; - v0.unk_00 = *param0; - v0.unk_0C = param1; + v0.count = v3; + v0.choices = *param0; + v0.window = param1; - Window_Show(param1, 0, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param1, 0, (1 + (18 + 12)), 11); - return sub_0200112C(&v0, 0, 0, 62); + return ListMenu_New(&v0, 0, 0, 62); } void ov94_02242934(UnkStruct_ov94_0223BA88_sub3 *param0, int param1, int param2) @@ -1289,30 +1285,30 @@ int ov94_02242970(int param0, int param1, int param2) return 0; } -BmpList *ov94_022429B4(ResourceMetadata **param0, Window *param1, MessageLoader *param2, MessageLoader *param3) +ListMenu *ov94_022429B4(StringList **param0, Window *param1, MessageLoader *param2, MessageLoader *param3) { - UnkStruct_ov84_02240FA8 v0; + ListMenuTemplate v0; int v1; int v2 = NELEMS(Unk_ov94_02246174) + 2; - *param0 = sub_02013A04(v2, 62); + *param0 = StringList_New(v2, 62); - sub_02013A4C(*param0, param3, 167, 0); + StringList_AddFromMessageBank(*param0, param3, 167, 0); for (v1 = 1; v1 < v2 - 1; v1++) { - sub_02013A4C(*param0, param2, Unk_ov94_02246174[v1 - 1], v1); + StringList_AddFromMessageBank(*param0, param2, Unk_ov94_02246174[v1 - 1], v1); } - sub_02013A4C(*param0, param3, 168, v2 - 1); + StringList_AddFromMessageBank(*param0, param3, 168, v2 - 1); v0 = Unk_ov94_0224608C; - v0.unk_10 = v2; - v0.unk_00 = *param0; - v0.unk_0C = param1; + v0.count = v2; + v0.choices = *param0; + v0.window = param1; - Window_Show(param1, 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(param1, 1, (1 + (18 + 12)), 11); - return sub_0200112C(&v0, 0, 0, 62); + return ListMenu_New(&v0, 0, 0, 62); } void ov94_02242A44(UnkStruct_ov94_0223FD4C *param0, int param1) @@ -1324,12 +1320,12 @@ void ov94_02242A44(UnkStruct_ov94_0223FD4C *param0, int param1) } } -u32 ov94_02242A6C(BmpList *param0, u16 *param1) +u32 ov94_02242A6C(ListMenu *param0, u16 *param1) { u16 v0; - u32 v1 = sub_02001288(param0); + u32 v1 = ListMenu_ProcessInput(param0); - sub_020014D0(param0, &v0); + ListMenu_CalcTrueCursorPos(param0, &v0); if (*param1 != v0) { if (*param1 != 0xffff) { diff --git a/src/overlay094/ov94_02242AD0.c b/src/overlay094/ov94_02242AD0.c index bc48f4ebc7..93e22b46da 100644 --- a/src/overlay094/ov94_02242AD0.c +++ b/src/overlay094/ov94_02242AD0.c @@ -33,11 +33,11 @@ #include "journal.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202CC64.h" #include "unk_0202DA40.h" @@ -160,7 +160,7 @@ int ov94_02242AD0(UnkStruct_ov94_0223FD4C *param0, int param1) ov94_02242CAC(param0); ov94_02242D38(param0); - sub_0200F174(3, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(3, 1, 1, 0x0, 6, 1, 62); ov94_02245934(param0); param0->unk_2C = 0; @@ -328,8 +328,8 @@ static void ov94_02242CAC(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPalette(104, 0, 0, 0, 16 * 3 * 2, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); if (param0->unk_10F0 == 0) { Bg_ToggleLayer(4, 0); @@ -1225,9 +1225,9 @@ static int ov94_02243A90(UnkStruct_ov94_0223FD4C *param0) sub_02039794(); if (param0->unk_1110 == 1) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 62); } else { - sub_0200F174(3, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, 62); } param0->unk_2C = 0; @@ -1295,8 +1295,8 @@ static void ov94_02243BC4(UnkStruct_ov94_0223FD4C *param0, Pokemon *param1, int } } - Pokemon_SetValue(param1, 9, &v1); - Pokemon_SetValue(param1, 111, NULL); + Pokemon_SetValue(param1, MON_DATA_FRIENDSHIP, &v1); + Pokemon_SetValue(param1, MON_DATA_GENDER, NULL); ov94_02243DE8(param0->unk_00->unk_00, 0); } @@ -1344,10 +1344,10 @@ static void ov94_02243CE4(UnkStruct_ov94_0223FD4C *param0, Pokemon *param1, int { u8 v1 = 70; - Pokemon_SetValue(param1, 9, &v1); + Pokemon_SetValue(param1, MON_DATA_FRIENDSHIP, &v1); } - Pokemon_SetValue(param1, 111, NULL); + Pokemon_SetValue(param1, MON_DATA_GENDER, NULL); if (param2 == 18) { int v2; diff --git a/src/overlay094/ov94_02244950.c b/src/overlay094/ov94_02244950.c index dff8d0e3d0..159992a56b 100644 --- a/src/overlay094/ov94_02244950.c +++ b/src/overlay094/ov94_02244950.c @@ -16,13 +16,13 @@ #include "graphics.h" #include "gx_layers.h" #include "inlines.h" +#include "menu.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02025CB0.h" #include "unk_0202ACE0.h" @@ -97,7 +97,7 @@ static int (*Unk_ov94_02246A40[])(UnkStruct_ov94_0223FD4C *) = { int ov94_02244950(UnkStruct_ov94_0223FD4C *param0, int param1) { ov94_02244F2C(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 62); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 62); ov94_02244A7C(param0->unk_04); ov94_02244B8C(param0); @@ -276,8 +276,8 @@ static void ov94_02244B8C(UnkStruct_ov94_0223FD4C *param0) Graphics_LoadPaletteFromOpenNARC(v1, 3, 4, 0, 0, 62); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 62); Font_LoadScreenIndicatorsPalette(4, 13 * 0x20, 62); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 62); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_24), 62); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 2, v0, 1, 0, 0, 0, 62); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 5, v0, 1, 0, 32 * 24 * 2, 0, 62); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 10, v0, 5, 0, 0, 0, 62); @@ -336,7 +336,7 @@ static int ov94_02244F8C(UnkStruct_ov94_0223FD4C *param0) static int ov94_02244FC4(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -363,7 +363,7 @@ static int ov94_0224502C(UnkStruct_ov94_0223FD4C *param0) static int ov94_0224505C(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -746,7 +746,7 @@ static int ov94_02245540(UnkStruct_ov94_0223FD4C *param0) static int ov94_02245564(UnkStruct_ov94_0223FD4C *param0) { if (gCoreSys.pressedKeys & PAD_BUTTON_A || gCoreSys.pressedKeys & PAD_BUTTON_B) { - Window_Clear(¶m0->unk_F8C, 0); + Window_EraseStandardFrame(¶m0->unk_F8C, 0); param0->unk_2C = 0; } @@ -757,7 +757,7 @@ static int ov94_02245594(UnkStruct_ov94_0223FD4C *param0) { sub_02039794(); ov94_0223C5F4(param0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 62); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 62); param0->unk_2C = 0; param0->unk_1110 = 1; @@ -767,7 +767,7 @@ static int ov94_02245594(UnkStruct_ov94_0223FD4C *param0) static int ov94_022455D0(UnkStruct_ov94_0223FD4C *param0) { - int v0 = sub_02002114(param0->unk_10D0, 62); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_10D0, 62); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -904,7 +904,7 @@ void ov94_02245824(UnkStruct_ov94_0223FD4C *param0, MessageLoader *param1, int p StringTemplate_Format(param0->unk_B8C, param0->unk_BAC, v0); Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_F5C, 0xf0f); - sub_0200E060(¶m0->unk_F5C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_F5C, 0, 1, 10); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F5C, FONT_MESSAGE, param0->unk_BAC, 0, 0, param3, NULL); param0->unk_10E0 = 0; @@ -954,7 +954,7 @@ static void ov94_0224593C(UnkStruct_ov94_0223FD4C *param0, int param1) StringTemplate_Format(param0->unk_B8C, param0->unk_BDC, v0); Window_FillTilemap(¶m0->unk_F8C, 15); - Window_Show(¶m0->unk_F8C, 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_F8C, 1, (1 + (18 + 12)), 11); param0->unk_BE0 = Text_AddPrinterWithParams(¶m0->unk_F8C, FONT_MESSAGE, param0->unk_BDC, 0, 0, TEXT_SPEED_INSTANT, NULL); @@ -972,7 +972,7 @@ static void ov94_022459B4(UnkStruct_ov94_0223FD4C *param0, int param1, int param } StringTemplate_SetNumber(param0->unk_B8C, 0, param2, 5, 2, 1); - sub_0200E084(¶m0->unk_F5C, 1); + Window_EraseMessageBox(¶m0->unk_F5C, 1); ov94_0224593C(param0, v0); } diff --git a/src/overlay095/ov95_02246C20.c b/src/overlay095/ov95_02246C20.c index a0c8a6e3b6..90c1fd26c2 100644 --- a/src/overlay095/ov95_02246C20.c +++ b/src/overlay095/ov95_02246C20.c @@ -127,7 +127,7 @@ static const struct { int ov95_02246C20(OverlayManager *param0, int *param1) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { UnkStruct_ov95_02247628 *v0; Heap_Create(3, 57, 98304); diff --git a/src/overlay095/ov95_02247B6C.c b/src/overlay095/ov95_02247B6C.c index 7af2480ec1..3e99b8b9c0 100644 --- a/src/overlay095/ov95_02247B6C.c +++ b/src/overlay095/ov95_02247B6C.c @@ -24,6 +24,7 @@ #include "message.h" #include "narc.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -31,7 +32,6 @@ #include "text.h" #include "unk_02005474.h" #include "unk_0200762C.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202419C.h" #include "unk_020393C8.h" @@ -256,7 +256,7 @@ static int ov95_02247CB4(UnkStruct_ov95_02247C6C *param0, int *param1) Bg_FillTilesRange(param0->unk_54, 1, 0x0, 1, 0); Bg_FillTilemapRect(param0->unk_54, 1, 0x0, 0, 0, 32, 32, 0); - sub_0200DD0C(param0->unk_54, 1, 109, 2, ov95_02247674(param0->unk_00), 58); + LoadMessageBoxGraphics(param0->unk_54, 1, 109, 2, ov95_02247674(param0->unk_00), 58); Window_Add(param0->unk_54, &(param0->unk_58), 1, 2, 19, 27, 4, 1, 1); Window_FillTilemap(&(param0->unk_58), 0xf); @@ -288,7 +288,7 @@ static int ov95_02247CB4(UnkStruct_ov95_02247C6C *param0, int *param1) sub_02039734(); sub_020397C8(1, 57); - sub_0200F174(0, 1, 1, 0x0, 16, 1, 58); + StartScreenTransition(0, 1, 1, 0x0, 16, 1, 58); return 1; } @@ -297,7 +297,7 @@ static int ov95_02247ED8(UnkStruct_ov95_02247C6C *param0, int *param1) { switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { CellActor_SetAnim(param0->unk_3C[0], 1); CellActor_SetDrawFlag(param0->unk_3C[0], 1); return 1; @@ -332,7 +332,7 @@ static int ov95_02247F04(UnkStruct_ov95_02247C6C *param0, int *param1) MessageLoader_GetStrbuf(v0, v2, param0->unk_68); StringTemplate_Format(v1, param0->unk_6C, param0->unk_68); Text_AddPrinterWithParams(&(param0->unk_58), FONT_MESSAGE, param0->unk_6C, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); - sub_0200E010(&(param0->unk_58), 109, 2); + Window_DrawMessageBox(&(param0->unk_58), 109, 2); Window_CopyToVRAM(&(param0->unk_58)); param0->unk_08 = 0; (*param1) = v3; @@ -367,7 +367,7 @@ static int ov95_02247F04(UnkStruct_ov95_02247C6C *param0, int *param1) break; case 3: if (++(param0->unk_08) > 60) { - sub_0200E084(&(param0->unk_58), 0); + Window_EraseMessageBox(&(param0->unk_58), 0); param0->unk_08 = 0; (*param1)++; } @@ -408,12 +408,12 @@ static int ov95_02248090(UnkStruct_ov95_02247C6C *param0, int *param1) break; case 3: if ((ov95_0224847C(param0) >= 2) || (ov95_0224846C(param0) == 1)) { - sub_0200F174(0, 0, 0, 0x0, 24, 1, 58); + StartScreenTransition(0, 0, 0, 0x0, 24, 1, 58); (*param1)++; } break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (ov95_0224846C(param0)) { return 1; } diff --git a/src/overlay095/ov95_02248590.c b/src/overlay095/ov95_02248590.c index bea5163c8d..91d8ea97d2 100644 --- a/src/overlay095/ov95_02248590.c +++ b/src/overlay095/ov95_02248590.c @@ -300,7 +300,7 @@ static int ov95_022486AC(UnkStruct_ov95_02248688 *param0, int *param1) ov95_022488A4(param0); ov95_02248B84(param0); ov95_02248CA8(param0); - sub_0200F174(0, 1, 1, 0x0, 8, 1, 58); + StartScreenTransition(0, 1, 1, 0x0, 8, 1, 58); return 1; } @@ -311,7 +311,7 @@ static int ov95_022486E0(UnkStruct_ov95_02248688 *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0 = 0; (*param1)++; } @@ -394,12 +394,12 @@ static int ov95_022487D4(UnkStruct_ov95_02248688 *param0, int *param1) } if (ov95_022494F4(param0->unk_160)) { - sub_0200F174(0, 0, 0, 0x7fff, 4, 1, 58); + StartScreenTransition(0, 0, 0, 0x7fff, 4, 1, 58); (*param1)++; } break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } diff --git a/src/overlay095/ov95_02249740.c b/src/overlay095/ov95_02249740.c index 562f4b610f..a5fc60eb77 100644 --- a/src/overlay095/ov95_02249740.c +++ b/src/overlay095/ov95_02249740.c @@ -193,7 +193,7 @@ static int ov95_022497F8(UnkStruct_ov95_022497D8 *param0, int *param1) param0->unk_0C = 0; SysTask_ExecuteAfterVBlank(ov95_02249F38, param0, 0); - sub_0200F174(0, 1, 1, 0x7fff, 3, 1, 58); + StartScreenTransition(0, 1, 1, 0x7fff, 3, 1, 58); return 1; } @@ -223,12 +223,12 @@ static int ov95_02249840(UnkStruct_ov95_022497D8 *param0, int *param1) break; case 3: if (CellActor_IsAnimated(param0->unk_20[0]) == 0) { - sub_0200F174(0, 0, 0, 0x7fff, 16, 1, 58); + StartScreenTransition(0, 0, 0, 0x7fff, 16, 1, 58); (*param1)++; } break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } } diff --git a/src/overlay095/ov95_02249F90.c b/src/overlay095/ov95_02249F90.c index 33e7757d53..78bb067154 100644 --- a/src/overlay095/ov95_02249F90.c +++ b/src/overlay095/ov95_02249F90.c @@ -96,7 +96,7 @@ BOOL ov95_02249FC8(void *param0, int *param1) static int ov95_02249FF8(UnkStruct_ov95_02249FF8 *param0, int *param1) { ov95_0224A10C(param0); - sub_0200F174(0, 1, 1, 0x7fff, 8, 1, 58); + StartScreenTransition(0, 1, 1, 0x7fff, 8, 1, 58); return 1; } @@ -105,7 +105,7 @@ static int ov95_0224A020(UnkStruct_ov95_02249FF8 *param0, int *param1) { switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_10 = UnkEnum_ov95_0224A020_02 << 12; param0->unk_14 = UnkEnum_ov95_0224A020_00 << 12; param0->unk_18 = ((UnkEnum_ov95_0224A020_03 - UnkEnum_ov95_0224A020_02) << 12) / UnkEnum_ov95_0224A020_04; @@ -119,12 +119,12 @@ static int ov95_0224A020(UnkStruct_ov95_02249FF8 *param0, int *param1) case 1: if (param0->unk_20) { Sound_PlayEffect(1705); - sub_0200F174(0, 0, 0, 0x7fff, 16, 1, 58); + StartScreenTransition(0, 0, 0, 0x7fff, 16, 1, 58); (*param1)++; } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; diff --git a/src/overlay095/ov95_0224A390.c b/src/overlay095/ov95_0224A390.c index 0e0738247c..760a749870 100644 --- a/src/overlay095/ov95_0224A390.c +++ b/src/overlay095/ov95_0224A390.c @@ -177,7 +177,7 @@ static int ov95_0224A42C(UnkStruct_ov95_0224A42C *param0, int *param1) ov95_0224A690(param0); ov95_0224A7B0(param0); - sub_0200F174(0, 1, 1, 0x7fff, 8, 1, 58); + StartScreenTransition(0, 1, 1, 0x7fff, 8, 1, 58); return 1; } @@ -186,7 +186,7 @@ static int ov95_0224A464(UnkStruct_ov95_0224A42C *param0, int *param1) { switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { CellActor_SetAnim(param0->unk_20[0], 3); CellActor_SetDrawFlag(param0->unk_20[0], 1); (*param1)++; @@ -202,12 +202,12 @@ static int ov95_0224A464(UnkStruct_ov95_0224A42C *param0, int *param1) break; case 2: if (ov95_0224A924(&(param0->unk_34))) { - sub_0200F174(0, 0, 0, 0x7fff, 16, 1, 58); + StartScreenTransition(0, 0, 0, 0x7fff, 16, 1, 58); (*param1)++; } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; diff --git a/src/overlay095/ov95_0224ABC0.c b/src/overlay095/ov95_0224ABC0.c index 47f69d7bd8..67dd9054f9 100644 --- a/src/overlay095/ov95_0224ABC0.c +++ b/src/overlay095/ov95_0224ABC0.c @@ -208,7 +208,7 @@ static int ov95_0224AC98(UnkStruct_ov95_0224AC64 *param0, int *param1) { ov95_0224AE1C(param0); ov95_0224B084(param0); - sub_0200F174(0, 1, 1, 0x7fff, 8, 1, 58); + StartScreenTransition(0, 1, 1, 0x7fff, 8, 1, 58); return 1; } @@ -217,7 +217,7 @@ static int ov95_0224ACC8(UnkStruct_ov95_0224AC64 *param0, int *param1) { switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_08 = 0; ov95_0224B274(param0, &(param0->unk_30)); (*param1)++; @@ -271,12 +271,12 @@ static int ov95_0224AD98(UnkStruct_ov95_0224AC64 *param0, int *param1) break; case 1: if (++(param0->unk_08) > 13) { - sub_0200F174(0, 0, 0, 0x0, 8, 1, 58); + StartScreenTransition(0, 0, 0, 0x0, 8, 1, 58); (*param1)++; } break; case 2: - if (ScreenWipe_Done() && (param0->unk_1C)) { + if (IsScreenTransitionDone() && (param0->unk_1C)) { return 1; } break; diff --git a/src/overlay095/ov95_0224B3D8.c b/src/overlay095/ov95_0224B3D8.c index 57d3abce28..b8c7dcc0d4 100644 --- a/src/overlay095/ov95_0224B3D8.c +++ b/src/overlay095/ov95_0224B3D8.c @@ -25,6 +25,7 @@ #include "message.h" #include "narc.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -32,7 +33,6 @@ #include "text.h" #include "unk_02005474.h" #include "unk_0200762C.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202419C.h" @@ -284,7 +284,7 @@ static int ov95_0224B520(UnkStruct_ov95_0224B4D4 *param0, int *param1) Bg_FillTilesRange(param0->unk_58, 1, 0x0, 1, 0); Bg_FillTilemapRect(param0->unk_58, 1, 0x0, 0, 0, 32, 32, 0); - sub_0200DD0C(param0->unk_58, 1, 109, 2, ov95_02247674(param0->unk_00), 58); + LoadMessageBoxGraphics(param0->unk_58, 1, 109, 2, ov95_02247674(param0->unk_00), 58); Window_Add(param0->unk_58, &(param0->unk_5C), 1, 2, 19, 27, 4, 1, 1); Window_FillTilemap(&(param0->unk_5C), 0xf); @@ -315,7 +315,7 @@ static int ov95_0224B520(UnkStruct_ov95_0224B4D4 *param0, int *param1) GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); G2_SetBlendAlpha(GX_BLEND_PLANEMASK_BG0, GX_BLEND_PLANEMASK_BG2, 16, 0); - sub_0200F174(3, 1, 1, 0x0, 16, 1, 58); + StartScreenTransition(3, 1, 1, 0x0, 16, 1, 58); return 1; } @@ -324,7 +324,7 @@ static int ov95_0224B6F0(UnkStruct_ov95_0224B4D4 *param0, int *param1) { switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { CellActor_SetAnim(param0->unk_40[0], 1); CellActor_SetDrawFlag(param0->unk_40[0], 1); return 1; @@ -407,7 +407,7 @@ static int ov95_0224B81C(UnkStruct_ov95_0224B4D4 *param0, int *param1) StringTemplate_Format(v1, param0->unk_70, param0->unk_6C); Text_AddPrinterWithParams(&(param0->unk_5C), FONT_MESSAGE, param0->unk_70, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); - sub_0200E010(&(param0->unk_5C), 109, 2); + Window_DrawMessageBox(&(param0->unk_5C), 109, 2); Window_CopyToVRAM(&(param0->unk_5C)); sub_02006150(1156); @@ -432,19 +432,19 @@ static int ov95_0224B81C(UnkStruct_ov95_0224B4D4 *param0, int *param1) break; case 3: if (ov95_0224B990(param0, 60)) { - sub_0200E084(&(param0->unk_5C), 0); + Window_EraseMessageBox(&(param0->unk_5C), 0); param0->unk_08 = 0; (*param1)++; } break; case 4: if (++(param0->unk_08) > 10) { - sub_0200F174(3, 0, 0, 0x0, 16, 1, 58); + StartScreenTransition(3, 0, 0, 0x0, 16, 1, 58); (*param1)++; } break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; diff --git a/src/overlay096/ov96_0223B6A0.c b/src/overlay096/ov96_0223B6A0.c index 633bc684e3..2ce7fda9c5 100644 --- a/src/overlay096/ov96_0223B6A0.c +++ b/src/overlay096/ov96_0223B6A0.c @@ -4,7 +4,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0206BC70.h" #include "struct_defs/struct_02099F80.h" @@ -19,12 +18,12 @@ #include "gx_layers.h" #include "heap.h" #include "inlines.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "sprite_resource.h" #include "string_template.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_020093B4.h" #include "unk_0200A328.h" @@ -140,7 +139,7 @@ int ov96_0223B7F8(OverlayManager *param0, int *param1) *param1 = (*Unk_ov96_0223DCD4[v0->unk_10][0])(v0, *param1); break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 3; } break; @@ -148,7 +147,7 @@ int ov96_0223B7F8(OverlayManager *param0, int *param1) *param1 = (*Unk_ov96_0223DCD4[v0->unk_10][1])(v0, *param1); break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = (*Unk_ov96_0223DCD4[v0->unk_10][2])(v0, *param1); } break; @@ -331,7 +330,7 @@ static const WindowTemplate Unk_ov96_0223DA78 = { 0x0 }; -UIControlData *ov96_0223BBC8(BgConfig *param0, int param1, int param2) +Menu *ov96_0223BBC8(BgConfig *param0, int param1, int param2) { WindowTemplate v0; @@ -339,7 +338,7 @@ UIControlData *ov96_0223BBC8(BgConfig *param0, int param1, int param2) v0.tilemapTop = param1; v0.baseTile = param2; - return sub_02002100(param0, &v0, (1 + (18 + 12)), 11, 68); + return Menu_MakeYesNoChoice(param0, &v0, (1 + (18 + 12)), 11, 68); } void ov96_0223BBFC(UnkStruct_ov96_0223BF40 *param0, int param1, int param2) diff --git a/src/overlay096/ov96_0223BCE0.c b/src/overlay096/ov96_0223BCE0.c index d6af618a8f..0e64533a32 100644 --- a/src/overlay096/ov96_0223BCE0.c +++ b/src/overlay096/ov96_0223BCE0.c @@ -23,15 +23,15 @@ #include "graphics.h" #include "gx_layers.h" #include "inlines.h" +#include "menu.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02025CB0.h" #include "unk_0202D05C.h" @@ -177,7 +177,7 @@ static int (*Unk_ov96_0223DCE0[])(UnkStruct_ov96_0223BF40 *) = { int ov96_0223BCE0(UnkStruct_ov96_0223BF40 *param0, int param1) { ov96_0223C358(param0); - sub_0200F174(0, 1, 1, 0x0, 8, 1, 68); + StartScreenTransition(0, 1, 1, 0x0, 8, 1, 68); ov96_0223BE38(param0->unk_04); ov96_0223BF40(param0); ov96_0223C1FC(param0); @@ -355,8 +355,8 @@ static void ov96_0223BF40(UnkStruct_ov96_0223BF40 *param0) Graphics_LoadPaletteFromOpenNARC(v1, 3, 4, 0, 0, 68); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 68); Font_LoadScreenIndicatorsPalette(4, 13 * 0x20, 68); - sub_0200DD0C(v0, 0, 1, 14, Options_Frame(param0->unk_00->unk_10), 68); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 68); + LoadMessageBoxGraphics(v0, 0, 1, 14, Options_Frame(param0->unk_00->unk_10), 68); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 68); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 2, v0, 1, 0, 0, 0, 68); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 5, v0, 1, 0, 32 * 24 * 2, 0, 68); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 10, v0, 5, 0, 0, 0, 68); @@ -421,7 +421,7 @@ static int ov96_0223C3F0(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223C420(UnkStruct_ov96_0223BF40 *param0) { - int v0 = sub_02002114(param0->unk_F68, 68); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_F68, 68); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -448,7 +448,7 @@ static int ov96_0223C488(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223C4B8(UnkStruct_ov96_0223BF40 *param0) { - int v0 = sub_02002114(param0->unk_F68, 68); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_F68, 68); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -869,7 +869,7 @@ static int ov96_0223C9F8(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223CA28(UnkStruct_ov96_0223BF40 *param0) { - Window_Show(¶m0->unk_E58, 0, (1 + (18 + 12)), 14); + Window_DrawStandardFrame(¶m0->unk_E58, 0, (1 + (18 + 12)), 14); ov96_0223D90C(¶m0->unk_E58, param0->unk_BE4, param0->unk_98, 3); ov96_0223D950(param0, 0, 1); Window_CopyToVRAM(¶m0->unk_E58); @@ -1134,7 +1134,7 @@ static int ov96_0223CF5C(UnkStruct_ov96_0223BF40 *param0) { param0->unk_90 = 1; - Window_Show(¶m0->unk_E48, 0, (1 + (18 + 12)), 14); + Window_DrawStandardFrame(¶m0->unk_E48, 0, (1 + (18 + 12)), 14); ov96_0223D90C(¶m0->unk_E48, param0->unk_BE8, param0->unk_90, 2); ov96_0223D950(param0, 1, 1); Window_CopyToVRAM(¶m0->unk_E48); @@ -1189,7 +1189,7 @@ static int ov96_0223D0B0(UnkStruct_ov96_0223BF40 *param0) { param0->unk_98 = 1; - Window_Show(¶m0->unk_E58, 0, (1 + (18 + 12)), 14); + Window_DrawStandardFrame(¶m0->unk_E58, 0, (1 + (18 + 12)), 14); ov96_0223D90C(¶m0->unk_E58, param0->unk_BE4, param0->unk_98, 3); ov96_0223D950(param0, 0, 1); Window_CopyToVRAM(¶m0->unk_E58); @@ -1358,7 +1358,7 @@ static int ov96_0223D3D8(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223D408(UnkStruct_ov96_0223BF40 *param0) { - int v0 = sub_02002114(param0->unk_F68, 68); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_F68, 68); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1382,7 +1382,7 @@ static int ov96_0223D43C(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223D46C(UnkStruct_ov96_0223BF40 *param0) { - int v0 = sub_02002114(param0->unk_F68, 68); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_F68, 68); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1431,7 +1431,7 @@ static int ov96_0223D528(UnkStruct_ov96_0223BF40 *param0) { sub_02039794(); sub_0203848C(); - sub_0200F174(0, 0, 0, 0x0, 8, 1, 68); + StartScreenTransition(0, 0, 0, 0x0, 8, 1, 68); param0->unk_1C = 0; @@ -1440,7 +1440,7 @@ static int ov96_0223D528(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223D558(UnkStruct_ov96_0223BF40 *param0) { - int v0 = sub_02002114(param0->unk_F68, 68); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_F68, 68); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1559,7 +1559,7 @@ static void ov96_0223D750(UnkStruct_ov96_0223BF40 *param0, MessageLoader *param1 StringTemplate_Format(param0->unk_BCC, param0->unk_BDC, v0); Window_FillTilemap(¶m0->unk_E38, 0xf0f); - sub_0200E060(¶m0->unk_E38, 0, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_E38, 0, 1, 14); param0->unk_BF0 = Text_AddPrinterWithParams(¶m0->unk_E38, FONT_MESSAGE, param0->unk_BDC, 0, 0, param3, NULL); @@ -1581,7 +1581,7 @@ static int ov96_0223D7B8(UnkStruct_ov96_0223BF40 *param0) static int ov96_0223D7E4(UnkStruct_ov96_0223BF40 *param0) { if (gCoreSys.pressedKeys & PAD_BUTTON_A || gCoreSys.pressedKeys & PAD_BUTTON_B) { - Window_Clear(¶m0->unk_E78, 0); + Window_EraseStandardFrame(¶m0->unk_E78, 0); param0->unk_1C = 0; } @@ -1592,7 +1592,7 @@ static void ov96_0223D814(UnkStruct_ov96_0223BF40 *param0, MessageLoader *param1 { MessageLoader_GetStrbuf(param1, param2, param0->unk_BDC); Window_FillTilemap(¶m0->unk_E38, 0xf0f); - sub_0200E060(¶m0->unk_E38, 0, 1, 14); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_E38, 0, 1, 14); param0->unk_BF0 = Text_AddPrinterWithParams(¶m0->unk_E38, FONT_MESSAGE, param0->unk_BDC, 0, 0, param3, NULL); } @@ -1650,14 +1650,14 @@ static void ov96_0223D950(UnkStruct_ov96_0223BF40 *param0, int param1, int param static void ov96_0223D978(UnkStruct_ov96_0223BF40 *param0) { if (param0->unk_F6C == NULL) { - param0->unk_F6C = sub_0200E7FC(¶m0->unk_E38, 1); + param0->unk_F6C = Window_AddWaitDial(¶m0->unk_E38, 1); } } static void ov96_0223D99C(UnkStruct_ov96_0223BF40 *param0) { if (param0->unk_F6C != NULL) { - DeleteWaitDial(param0->unk_F6C); + DestroyWaitDial(param0->unk_F6C); param0->unk_F6C = NULL; } } @@ -1669,7 +1669,7 @@ static void ov96_0223D9B8(UnkStruct_ov96_0223BF40 *param0, int param1) MessageLoader_GetStrbuf(param0->unk_BD8, param1, v0); StringTemplate_Format(param0->unk_BCC, param0->unk_BEC, v0); Window_FillTilemap(¶m0->unk_E78, 15); - Window_Show(¶m0->unk_E78, 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_E78, 1, (1 + (18 + 12)), 11); param0->unk_BF0 = Text_AddPrinterWithParams(¶m0->unk_E78, FONT_MESSAGE, param0->unk_BEC, 0, 0, TEXT_SPEED_INSTANT, NULL); @@ -1687,6 +1687,6 @@ static void ov96_0223DA34(UnkStruct_ov96_0223BF40 *param0, int param1, int param } StringTemplate_SetNumber(param0->unk_BCC, 0, param2, 5, 2, 1); - sub_0200E084(¶m0->unk_E38, 1); + Window_EraseMessageBox(¶m0->unk_E38, 1); ov96_0223D9B8(param0, v0); } diff --git a/src/overlay097/ov97_0222AE60.c b/src/overlay097/ov97_0222AE60.c index 65498f947c..cb19ca63f4 100644 --- a/src/overlay097/ov97_0222AE60.c +++ b/src/overlay097/ov97_0222AE60.c @@ -27,6 +27,7 @@ #include "message_util.h" #include "overlay_manager.h" #include "play_time.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" @@ -37,7 +38,6 @@ #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -196,7 +196,7 @@ static BOOL ov97_0222AE64(UnkStruct_0222AE60 *param0) } else { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(1500); - Window_Clear(¶m0->unk_158, 0); + Window_EraseStandardFrame(¶m0->unk_158, 0); Window_Remove(¶m0->unk_158); } @@ -239,7 +239,7 @@ static void ov97_0222AF1C(UnkStruct_0222AE60 *param0) sub_02017B70(v0); - if (Pokedex_IsNationalUnlocked(param0->unk_08) == 0) { + if (Pokedex_IsNationalDexObtained(param0->unk_08) == FALSE) { return; } @@ -334,7 +334,7 @@ static BOOL ov97_0222B07C(UnkStruct_0222AE60 *param0) return 1; case 16: - sub_0200DAA4(param0->unk_00, 1, 1, 2, 0, 81); + LoadStandardWindowGraphics(param0->unk_00, 1, 1, 2, 0, 81); Bg_ClearTilemap(param0->unk_00, 1); *((u16 *)HW_BG_PLTT + 33) = ((26 & 31) << 10 | (26 & 31) << 5 | (26 & 31)); param0->unk_12C = 17; @@ -468,8 +468,8 @@ static void ov97_0222B2EC(UnkStruct_0222AE60 *param0) *((u16 *)HW_BG_PLTT + 0) = ((0 & 31) << 10 | (0 & 31) << 5 | (0 & 31)); *((u16 *)HW_BG_PLTT + 31) = ((26 & 31) << 10 | (26 & 31) << 5 | (26 & 31)); - sub_0200DAA4(param0->unk_00, 0, 1, 2, 0, 81); - sub_0200DAA4(param0->unk_00, 0, (1 + 9), 3, 1, 81); + LoadStandardWindowGraphics(param0->unk_00, 0, 1, 2, 0, 81); + LoadStandardWindowGraphics(param0->unk_00, 0, (1 + 9), 3, 1, 81); *((u16 *)HW_BG_PLTT + 33) = ((26 & 31) << 10 | (26 & 31) << 5 | (26 & 31)); } @@ -600,11 +600,11 @@ static BOOL ov97_0222B5C0(void *param0, int param1, UnkStruct_ov97_02237808 *par ov97_0222B53C(param2->unk_10, v5, v4, v7, 19, 16 * 3); if (v6->unk_4C) { - ov97_0222B590(v4, sub_02026E48(v6->unk_08)); + ov97_0222B590(v4, Pokedex_CountSeen(v6->unk_08)); ov97_0222B53C(param2->unk_10, v5, v4, v7, 18, 16 * 4); } - Window_Show(param2->unk_10, 0, param2->unk_38, param2->unk_3C); + Window_DrawStandardFrame(param2->unk_10, 0, param2->unk_38, param2->unk_3C); v6->unk_DC[param1] = Unk_ov97_0223E014[param1].unk_00; @@ -771,7 +771,7 @@ static BOOL ov97_0222B9BC(UnkStruct_0222AE60 *param0) if (param0->unk_DC[v2]) { Window_SetXPos(v1.unk_10, 3); Window_SetYPos(v1.unk_10, v3); - Window_Show(v1.unk_10, 0, v1.unk_38, v1.unk_3C); + Window_DrawStandardFrame(v1.unk_10, 0, v1.unk_38, v1.unk_3C); if (param0->unk_FC[v2]) { ov97_0222B4AC(param0, 26, v3, param0->unk_FC[v2]); @@ -807,10 +807,10 @@ static void ov97_0222BAD8(UnkStruct_0222AE60 *param0, int param1) } if (v0 == param1) { - Window_Show(¶m0->unk_5C[v0], 1, (1 + 9), 3); + Window_DrawStandardFrame(¶m0->unk_5C[v0], 1, (1 + 9), 3); Bg_ChangeTilemapRectPalette(param0->unk_00, 0, Window_GetXPos(¶m0->unk_5C[v0]), Window_GetYPos(¶m0->unk_5C[v0]), Window_GetWidth(¶m0->unk_5C[v0]), Window_GetHeight(¶m0->unk_5C[v0]), 0); } else { - Window_Show(¶m0->unk_5C[v0], 1, 1, 2); + Window_DrawStandardFrame(¶m0->unk_5C[v0], 1, 1, 2); Bg_ChangeTilemapRectPalette(param0->unk_00, 0, Window_GetXPos(¶m0->unk_5C[v0]), Window_GetYPos(¶m0->unk_5C[v0]), Window_GetWidth(¶m0->unk_5C[v0]), Window_GetHeight(¶m0->unk_5C[v0]), 1); } } @@ -991,7 +991,7 @@ static int ov97_0222BD70(OverlayManager *param0, int *param1) v0->unk_0C = SaveData_GetTrainerInfo(v0->unk_04); v0->unk_08 = SaveData_Pokedex(v0->unk_04); v0->playTime = SaveData_GetPlayTime(v0->unk_04); - v0->unk_4C = sub_02027520(v0->unk_08); + v0->unk_4C = Pokedex_IsObtained(v0->unk_08); v0->unk_50 = TrainerInfo_BadgeCount(v0->unk_0C); v0->unk_12C = 15; diff --git a/src/overlay097/ov97_0222C174.c b/src/overlay097/ov97_0222C174.c index 2948de2ead..8ca64811e2 100644 --- a/src/overlay097/ov97_0222C174.c +++ b/src/overlay097/ov97_0222C174.c @@ -29,6 +29,7 @@ #include "message.h" #include "message_util.h" #include "overlay_manager.h" +#include "render_window.h" #include "rtc.h" #include "save_player.h" #include "savedata.h" @@ -39,7 +40,6 @@ #include "unk_02000C88.h" #include "unk_020041CC.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0202631C.h" #include "unk_0202DAB4.h" #include "unk_02033200.h" @@ -542,11 +542,11 @@ static void ov97_0222C254(UnkStruct_ov97_0222C388 *param0) Text_ResetAllPrinters(); Font_LoadTextPalette(0, 0 * 32, param0->unk_00); - sub_0200DAA4(param0->unk_04, 0, 1, 1, 0, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_04, 0, 1, 1, 0, param0->unk_00); v0 = Options_Frame(param0->unk_14); - sub_0200DD0C(param0->unk_04, 0, (1 + 9), 2, v0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_04, 0, (1 + 9), 2, v0, param0->unk_00); Graphics_LoadPalette(116, 0, 0, 16 * 2 * 8, 16 * 2, param0->unk_00); Graphics_LoadTilesToBgLayer(116, 1, param0->unk_04, 1, 0, 10 * 16 * 0x20, 1, param0->unk_00); Graphics_LoadTilemapToBgLayer(116, 2, param0->unk_04, 1, 0, 32 * 24 * 2, 1, param0->unk_00); @@ -576,7 +576,7 @@ static BOOL ov97_0222C404(UnkStruct_ov97_0222C388 *param0) return 1; } else { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - Window_Clear(¶m0->unk_18, 0); + Window_EraseStandardFrame(¶m0->unk_18, 0); Window_Remove(¶m0->unk_18); return 0; } @@ -708,7 +708,7 @@ static int ov97_0222C78C(OverlayManager *param0, int *param1) case UnkEnum_ov97_0222C78C_00: ov97_0222C254(v0); - if (sub_02027520(v0->unk_0C) == 0) { + if (Pokedex_IsObtained(v0->unk_0C) == FALSE) { ov97_02237790(1, UnkEnum_ov97_0222C78C_01, param1, UnkEnum_ov97_0222C78C_13); } else { *param1 = UnkEnum_ov97_0222C78C_02; @@ -900,7 +900,7 @@ int ov97_0222CB10(UnkStruct_ov97_0222C388 *param0) case UnkEnum_ov97_0222C6F8_02: ov97_02233120(); ov97_0222CAAC(param0, 1600); - param0->unk_34D8 = sub_0200E7FC(¶m0->unk_28, (1 + 9)); + param0->unk_34D8 = Window_AddWaitDial(¶m0->unk_28, (1 + 9)); *v3 = UnkEnum_ov97_0222C6F8_03; break; case UnkEnum_ov97_0222C6F8_03: @@ -933,7 +933,7 @@ int ov97_0222CB10(UnkStruct_ov97_0222C388 *param0) case UnkEnum_ov97_0222C6F8_29: ov97_0223795C(param0->unk_04, ¶m0->unk_48, 2, 19, 30); CellActor_SetDrawFlag(param0->unk_3170, 0); - DeleteWaitDial(param0->unk_34D8); + DestroyWaitDial(param0->unk_34D8); param0->unk_34D8 = NULL; Sound_PlayEffect(1500); param0->unk_160 = 1800; @@ -993,7 +993,7 @@ int ov97_0222CB10(UnkStruct_ov97_0222C388 *param0) case UnkEnum_ov97_0222C6F8_13: if (--param0->unk_160 == 0) { ov97_0223795C(param0->unk_04, ¶m0->unk_48, 2, 19, 72); - param0->unk_34D8 = sub_0200E7FC(¶m0->unk_28, (1 + 9)); + param0->unk_34D8 = Window_AddWaitDial(¶m0->unk_28, (1 + 9)); ov97_0222C974(param0); ov97_0223846C(param0->unk_08); *v3 = UnkEnum_ov97_0222C6F8_14; @@ -1064,7 +1064,7 @@ int ov97_0222CB10(UnkStruct_ov97_0222C388 *param0) ov97_0223795C(param0->unk_04, ¶m0->unk_48, 2, 19, 73); CellActor_SetDrawFlag(param0->unk_3170, 0); - DeleteWaitDial(param0->unk_34D8); + DestroyWaitDial(param0->unk_34D8); Sound_PlayEffect(1500); param0->unk_34D8 = NULL; @@ -1091,7 +1091,7 @@ int ov97_0222CB10(UnkStruct_ov97_0222C388 *param0) CellActor_SetDrawFlag(param0->unk_3170, 0); if (param0->unk_34D8) { - DeleteWaitDial(param0->unk_34D8); + DestroyWaitDial(param0->unk_34D8); } param0->unk_34D8 = NULL; @@ -1118,7 +1118,7 @@ int ov97_0222CB10(UnkStruct_ov97_0222C388 *param0) param0->unk_148 = 0; if (param0->unk_34D8) { - DeleteWaitDial(param0->unk_34D8); + DestroyWaitDial(param0->unk_34D8); } return 5; diff --git a/src/overlay097/ov97_0222D30C.c b/src/overlay097/ov97_0222D30C.c index 4b022484a8..1b473351c8 100644 --- a/src/overlay097/ov97_0222D30C.c +++ b/src/overlay097/ov97_0222D30C.c @@ -9,7 +9,6 @@ #include "struct_defs/struct_0203CC84.h" #include "overlay077/const_ov77_021D742C.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay097/ov97_0222D04C.h" #include "overlay097/ov97_02232054.h" #include "overlay097/ov97_02237520.h" @@ -32,28 +31,28 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" #include "message.h" #include "message_util.h" #include "overlay_manager.h" #include "pokemon.h" +#include "render_window.h" #include "rtc.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "unk_02000C88.h" -#include "unk_0200112C.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201D15C.h" #include "unk_0202DAB4.h" @@ -183,7 +182,7 @@ UnkStruct_ov97_0223E5B8 Unk_ov97_0223E588[] = { { 0x13, (u32)ov97_0222D9F0 } }; -static UnkStruct_ov84_02240FA8 Unk_ov97_0223E5D0 = { +static ListMenuTemplate Unk_ov97_0223E5D0 = { NULL, ov97_022383C4, NULL, @@ -212,11 +211,11 @@ static void ov97_0222D30C(UnkStruct_ov97_0222D04C *param0, int param1) { if (param1 == 1) { if (param0->unk_2A50 == NULL) { - param0->unk_2A50 = sub_0200E7FC(¶m0->unk_18, 1); + param0->unk_2A50 = Window_AddWaitDial(¶m0->unk_18, 1); } } else { if (param0->unk_2A50) { - DeleteWaitDial(param0->unk_2A50); + DestroyWaitDial(param0->unk_2A50); } param0->unk_2A50 = NULL; @@ -236,11 +235,11 @@ static void ov97_0222D34C(OverlayManager *param0) ov97_02237DA0(); if (v1->unk_7C) { - sub_02013A3C(v1->unk_7C); + StringList_Free(v1->unk_7C); } if (v1->unk_78) { - sub_02001384(v1->unk_78, NULL, NULL); + ListMenu_Free(v1->unk_78, NULL, NULL); } Window_ClearAndCopyToVRAM(&v1->unk_18); @@ -284,14 +283,14 @@ static void ov97_0222D40C(UnkStruct_ov97_0222D04C *param0, int param1) static void ov97_0222D444(Window *param0, u8 param1) { if (Window_IsInUse(param0) == 1) { - Window_Clear(param0, param1); + Window_EraseStandardFrame(param0, param1); } } static void ov97_0222D45C(Window *param0, u8 param1) { if (Window_IsInUse(param0) == 1) { - sub_0200E084(param0, param1); + Window_EraseMessageBox(param0, param1); } } @@ -482,7 +481,7 @@ static void ov97_0222D6F8(OverlayManager *param0, int param1) Window_Add(v2->unk_00, v1, 0, 23, 10, 6, 4, 0, (((((1 + (18 + 12)) + 9) + 26 * 6) + 16 * 6) + 17 * 8)); } - Window_Show(v1, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v1, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, Unk_ov97_0223E5A8, NELEMS(Unk_ov97_0223E5A8), v1, v0); } @@ -521,7 +520,7 @@ static int ov97_0222D798(OverlayManager *param0) Window_Add(v1->unk_00, v0, 0, 23, 10, 6, 4, 0, (((((1 + (18 + 12)) + 9) + 26 * 6) + 16 * 6) + 17 * 8)); } - Window_Show(v0, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v0, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, Unk_ov97_0223E598, NELEMS(Unk_ov97_0223E598), v0, 2); return 5; @@ -542,7 +541,7 @@ static int ov97_0222D814(OverlayManager *param0) Window_Add(v1->unk_00, v0, 0, 23, 10, 6, 4, 0, (((((1 + (18 + 12)) + 9) + 26 * 6) + 16 * 6) + 17 * 8)); } - Window_Show(v0, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v0, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, Unk_ov97_0223E568, NELEMS(Unk_ov97_0223E568), v0, 78); return 5; @@ -563,7 +562,7 @@ static int ov97_0222D884(OverlayManager *param0) Window_Add(v1->unk_00, v0, 0, 23, 10, 6, 4, 0, (((((1 + (18 + 12)) + 9) + 26 * 6) + 16 * 6) + 17 * 8)); } - Window_Show(v0, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v0, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, Unk_ov97_0223E578, NELEMS(Unk_ov97_0223E578), v0, 77); return 5; @@ -580,7 +579,7 @@ static void ov97_0222D8F4(OverlayManager *param0) Window_Add(v1->unk_00, v0, 0, 23, 10, 6, 4, 0, (((((1 + (18 + 12)) + 9) + 26 * 6) + 16 * 6) + 17 * 8)); } - Window_Show(v0, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v0, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, Unk_ov97_0223E588, NELEMS(Unk_ov97_0223E588), v0, 4); } @@ -681,7 +680,7 @@ static int ov97_0222DA84(OverlayManager *param0) Window_Add(v2->unk_00, v0, 0, 15, 9, 16, 8, 0, ((((1 + (18 + 12)) + 9) + 26 * 6) + 16 * 6)); } - Window_Show(v0, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v0, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, Unk_ov97_0223E5F0, 4, v0, 1); return 4; @@ -779,33 +778,33 @@ static void ov97_0222DC9C(BgConfig *param0) static void ov97_0222DD1C(OverlayManager *param0, UnkStruct_ov97_0223E5B8 *param1, int param2, Window *param3, u32 param4) { int v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; UnkStruct_ov97_0222D04C *v2 = OverlayManager_Data(param0); if (v2->unk_7C) { - sub_02013A3C(v2->unk_7C); + StringList_Free(v2->unk_7C); } - v2->unk_7C = sub_02013A04(param2, 86); + v2->unk_7C = StringList_New(param2, 86); v2->unk_10 = MessageLoader_Init(0, 26, 421, 86); for (v0 = 0; v0 < param2; v0++) { - sub_02013A4C(v2->unk_7C, v2->unk_10, param1[v0].unk_00, param1[v0].unk_04); + StringList_AddFromMessageBank(v2->unk_7C, v2->unk_10, param1[v0].unk_00, param1[v0].unk_04); } MessageLoader_Free(v2->unk_10); v1 = Unk_ov97_0223E5D0; - v1.unk_00 = v2->unk_7C; - v1.unk_10 = v1.unk_12 = param2; - v1.unk_0C = param3; + v1.choices = v2->unk_7C; + v1.count = v1.maxDisplay = param2; + v1.window = param3; if (v2->unk_78) { - sub_02001384(v2->unk_78, NULL, NULL); + ListMenu_Free(v2->unk_78, NULL, NULL); } - v2->unk_78 = sub_0200112C(&v1, 0, 0, 86); + v2->unk_78 = ListMenu_New(&v1, 0, 0, 86); if (param4 != -1) { ov97_0222DE78(param0, &v2->unk_18, param4); @@ -833,7 +832,7 @@ static void ov97_0222DDD0(OverlayManager *param0, int param1, u32 param2) Window_Add(v0->unk_00, v1, 0, 8, 7, 16, v4 * 2, 0, param1); } - Window_Show(v1, 1, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(v1, 1, (1 + (18 + 12)), 3); ov97_0222DD1C(param0, v2, v4, v1, param2); } @@ -859,7 +858,7 @@ static void ov97_0222DE78(OverlayManager *param0, Window *param1, u32 param2) Strbuf_Free(v0); } - sub_0200E060(param1, 0, 1, 2); + Window_DrawMessageBoxWithScrollCursor(param1, 0, 1, 2); MessageLoader_Free(v1->unk_10); StringTemplate_Free(v1->unk_0C); @@ -876,7 +875,7 @@ static void ov97_0222DF10(OverlayManager *param0, Window *param1, u16 *param2) Strbuf_CopyNumChars(v0, param2, 36); Window_FillTilemap(param1, Font_GetAttribute(FONT_SYSTEM, FONTATTR_BG_COLOR)); Text_AddPrinterWithParamsAndColor(param1, FONT_SYSTEM, v0, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); - Window_Show(param1, 0, (1 + (18 + 12)), 3); + Window_DrawStandardFrame(param1, 0, (1 + (18 + 12)), 3); Strbuf_Free(v0); } @@ -887,7 +886,7 @@ static void ov97_0222DF70(OverlayManager *param0, int *param1, int (*param2)(Ove UnkStruct_ov97_0222D04C *v2 = OverlayManager_Data(param0); static int (*v3)(OverlayManager *); - v0 = sub_02001288(v2->unk_78); + v0 = ListMenu_ProcessInput(v2->unk_78); switch (v0) { case 0xffffffff: @@ -928,8 +927,8 @@ static BOOL ov97_0222DFD4(OverlayManager *param0, UnkStruct_ov97_0222D04C *param v0 = Options_Frame(param1->unk_08); - sub_0200DD0C(param1->unk_00, 0, 1, 2, v0, 86); - sub_0200DAA4(param1->unk_00, 0, (1 + (18 + 12)), 3, 1, 86); + LoadMessageBoxGraphics(param1->unk_00, 0, 1, 2, v0, 86); + LoadStandardWindowGraphics(param1->unk_00, 0, (1 + (18 + 12)), 3, 1, 86); *((u16 *)HW_BG_PLTT) = ((31 & 31) << 10 | (12 & 31) << 5 | (12 & 31)); diff --git a/src/overlay097/ov97_02230410.c b/src/overlay097/ov97_02230410.c index e301897b2b..bcc8f134fc 100644 --- a/src/overlay097/ov97_02230410.c +++ b/src/overlay097/ov97_02230410.c @@ -1,15 +1,11 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202442C_decl.h" #include "struct_defs/struct_0200C738.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0202DBAC.h" #include "struct_defs/struct_0203CC84.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay097/ov97_0222D04C.h" #include "overlay097/ov97_02232054.h" #include "overlay097/ov97_02237694.h" @@ -29,25 +25,25 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" #include "message.h" #include "message_util.h" #include "overlay_manager.h" #include "pokemon_icon.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" #include "unk_02000C88.h" -#include "unk_0200112C.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_0202DAB4.h" #include "unk_02033200.h" #include "unk_020363E8.h" @@ -84,8 +80,8 @@ typedef struct { UnkStruct_0202DBAC *unk_2C14[3]; int unk_2C20; int unk_2C24; - BmpList *unk_2C28; - ResourceMetadata *unk_2C2C; + ListMenu *unk_2C28; + StringList *unk_2C2C; Window unk_2C30; Window unk_2C40; int unk_2C50; @@ -210,7 +206,7 @@ UnkStruct_ov97_0223E640 Unk_ov97_0223E620[] = { { 0x41, (u32)ov97_02230834 } }; -static UnkStruct_ov84_02240FA8 Unk_ov97_0223E660 = { +static ListMenuTemplate Unk_ov97_0223E660 = { NULL, ov97_022383C4, NULL, @@ -280,46 +276,46 @@ static void ov97_022304AC(UnkStruct_ov97_02230868 *param0) static void ov97_02230500(Window *param0, u8 param1) { if (Window_IsInUse(param0) == 1) { - Window_Clear(param0, param1); + Window_EraseStandardFrame(param0, param1); } } static void ov97_02230518(Window *param0, u8 param1) { if (Window_IsInUse(param0) == 1) { - sub_0200E084(param0, param1); + Window_EraseMessageBox(param0, param1); } } static void ov97_02230530(UnkStruct_ov97_02230868 *param0, UnkStruct_ov97_0223E640 *param1, int param2, Window *param3, int param4) { int v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; if (param0->unk_2C2C) { - sub_02013A3C(param0->unk_2C2C); + StringList_Free(param0->unk_2C2C); } if (param0->unk_2C28) { - sub_02001384(param0->unk_2C28, NULL, NULL); + ListMenu_Free(param0->unk_2C28, NULL, NULL); } - param0->unk_2C2C = sub_02013A04(param2, 87); + param0->unk_2C2C = StringList_New(param2, 87); param0->unk_2A64 = MessageLoader_Init(0, 26, 421, 87); for (v0 = 0; v0 < param2; v0++) { - sub_02013A4C(param0->unk_2C2C, param0->unk_2A64, param1[v0].unk_00, param1[v0].unk_04); + StringList_AddFromMessageBank(param0->unk_2C2C, param0->unk_2A64, param1[v0].unk_00, param1[v0].unk_04); } MessageLoader_Free(param0->unk_2A64); v1 = Unk_ov97_0223E660; - v1.unk_00 = param0->unk_2C2C; - v1.unk_10 = param2; - v1.unk_0C = param3; + v1.choices = param0->unk_2C2C; + v1.count = param2; + v1.window = param3; - param0->unk_2C28 = sub_0200112C(&v1, 0, param4, 87); + param0->unk_2C28 = ListMenu_New(&v1, 0, param4, 87); } static void ov97_022305EC(Window *param0, int param1) @@ -383,7 +379,7 @@ static int ov97_02230778(OverlayManager *param0) ov97_02230868(v0); ov97_022305EC(&v0->unk_2C30, 63); - v0->unk_3E14 = sub_0200E7FC(&v0->unk_2C30, ((1 + 9) + 9)); + v0->unk_3E14 = Window_AddWaitDial(&v0->unk_2C30, ((1 + 9) + 9)); if (sub_0202DDA8(v0->unk_2C00, v0->unk_2C20) == 1) { sub_0202DC7C(v0->unk_2C00, v0->unk_2C20); @@ -392,7 +388,7 @@ static int ov97_02230778(OverlayManager *param0) } SaveData_Save(v0->unk_2C04); - DeleteWaitDial(v0->unk_3E14); + DestroyWaitDial(v0->unk_3E14); if (sub_0202DD88(v0->unk_2C00) == 0) { return 26; @@ -420,9 +416,9 @@ static int ov97_02230834(OverlayManager *param0) static void ov97_02230868(UnkStruct_ov97_02230868 *param0) { - sub_02013A3C(param0->unk_2C2C); + StringList_Free(param0->unk_2C2C); param0->unk_2C2C = NULL; - sub_02001384(param0->unk_2C28, NULL, NULL); + ListMenu_Free(param0->unk_2C28, NULL, NULL); param0->unk_2C28 = NULL; ov97_02230500(¶m0->unk_2C40, 0); Window_ClearAndCopyToVRAM(¶m0->unk_2C40); @@ -567,7 +563,7 @@ static BOOL ov97_02230BF0(UnkStruct_ov97_02230868 *param0, Window *param1, u32 p static void ov97_02230C10(UnkStruct_ov97_02230868 *param0, int param1, int param2, int *param3) { - sub_0200F174(0, param1, param1, 0x0, 6, 1, 87); + StartScreenTransition(0, param1, param1, 0x0, 6, 1, 87); if (param3) { *param3 = 27; @@ -668,9 +664,9 @@ static int ov97_02230E04(UnkStruct_ov97_02230868 *param0, Window *param1, int pa } if (param1 == ¶m0->unk_2C30) { - sub_0200E060(param1, 0, ((1 + 9) + 9), 10); + Window_DrawMessageBoxWithScrollCursor(param1, 0, ((1 + 9) + 9), 10); } else { - Window_Show(param1, 0, (1 + 9), 14); + Window_DrawStandardFrame(param1, 0, (1 + 9), 14); } return param3 + v2->unk_0C * v2->unk_10; @@ -744,7 +740,7 @@ static void ov97_02231088(OverlayManager *param0, int *param1, int (*param2)(Ove UnkStruct_ov97_02230868 *v2 = OverlayManager_Data(param0); static int (*v3)(OverlayManager *); - v0 = sub_02001288(v2->unk_2C28); + v0 = ListMenu_ProcessInput(v2->unk_2C28); switch (v0) { case 0xffffffff: @@ -1017,7 +1013,7 @@ static void ov97_022314FC(UnkStruct_ov97_02230868 *param0, int param1, int *para param0->unk_2C94 = 1; *param2 = 21; ov97_02230E04(param0, ¶m0->unk_2C30, 17, 640); - param0->unk_3E14 = sub_0200E7FC(¶m0->unk_2C30, ((1 + 9) + 9)); + param0->unk_3E14 = Window_AddWaitDial(¶m0->unk_2C30, ((1 + 9) + 9)); } if (v0 == 2) { @@ -1058,9 +1054,9 @@ static int ov97_0223161C(OverlayManager *param0, int *param1) Text_ResetAllPrinters(); ov97_02230F98(v4, 0); Font_LoadTextPalette(0, 15 * 32, 87); - sub_0200DAA4(v4->unk_2A5C, 0, 1, 13, 0, 87); - sub_0200DAA4(v4->unk_2A5C, 0, (1 + 9), 14, 1, 87); - sub_0200DD0C(v4->unk_2A5C, 0, ((1 + 9) + 9), 10, v4->unk_2C0C, 87); + LoadStandardWindowGraphics(v4->unk_2A5C, 0, 1, 13, 0, 87); + LoadStandardWindowGraphics(v4->unk_2A5C, 0, (1 + 9), 14, 1, 87); + LoadMessageBoxGraphics(v4->unk_2A5C, 0, ((1 + 9) + 9), 10, v4->unk_2C0C, 87); ov97_02230C44(v4, 1, 0); ov97_02230C10(v4, 1, 3, param1); @@ -1133,8 +1129,8 @@ static int ov97_0223161C(OverlayManager *param0, int *param1) break; case 10: if (ov97_02231354(v4)) { - sub_0200E060(&v4->unk_2C30, 0, ((1 + 9) + 9), 10); - Window_Show(&v4->unk_2C40, 0, (1 + 9), 14); + Window_DrawMessageBoxWithScrollCursor(&v4->unk_2C30, 0, ((1 + 9) + 9), 10); + Window_DrawStandardFrame(&v4->unk_2C40, 0, (1 + 9), 14); GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); ov97_02231318(v4); *param1 = 5; @@ -1230,7 +1226,7 @@ static int ov97_0223161C(OverlayManager *param0, int *param1) if ((ov97_02231C84(v4) == 0) || (CommTiming_IsSyncState(0x93) == 1)) { ov97_022384F4(); ov97_02230E04(v4, &v4->unk_2C30, 17 + 1, 640); - DeleteWaitDial(v4->unk_3E14); + DestroyWaitDial(v4->unk_3E14); ov97_02231F1C(v4, param1, 25); } break; @@ -1243,7 +1239,7 @@ static int ov97_0223161C(OverlayManager *param0, int *param1) ov97_02230C10(v4, 0, 28, param1); break; case 27: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = v4->unk_2CA0; } break; diff --git a/src/overlay097/ov97_02233B18.c b/src/overlay097/ov97_02233B18.c index 75efc73c0d..de938f5d8f 100644 --- a/src/overlay097/ov97_02233B18.c +++ b/src/overlay097/ov97_02233B18.c @@ -37,6 +37,7 @@ #include "pokemon.h" #include "pokemon_icon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" @@ -51,7 +52,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015920.h" #include "unk_02017728.h" @@ -482,9 +482,9 @@ static void ov97_02233DD0(UnkStruct_ov97_02234A2C *param0, UnkStruct_ov97_02233D if (param2 & 0x8) { if (param2 & 0x10) { - sub_0200E060(param1->unk_00, 0, (0x3F0 - (18 + 12)), 13); + Window_DrawMessageBoxWithScrollCursor(param1->unk_00, 0, (0x3F0 - (18 + 12)), 13); } else { - Window_Show(param1->unk_00, 0, 0x3F0, 14); + Window_DrawStandardFrame(param1->unk_00, 0, 0x3F0, 14); } } } @@ -1261,7 +1261,7 @@ static void ov97_02234B0C(UnkStruct_ov97_02234A2C *param0, BoxPokemonGBA *param1 static void ov97_02234CC4(UnkStruct_ov97_02234A2C *param0, int param1, int param2, int *param3) { - sub_0200F174(0, param1, param1, 0x0, 6, 1, 78); + StartScreenTransition(0, param1, param1, 0x0, 6, 1, 78); if (param3) { *param3 = 23; @@ -1272,7 +1272,7 @@ static void ov97_02234CC4(UnkStruct_ov97_02234A2C *param0, int param1, int param static void ov97_02234CF4(UnkStruct_ov97_02234A2C *param0, int param1, int param2, int *param3) { - sub_0200F174(0, param1, param1, 0x7fff, 6, 1, 78); + StartScreenTransition(0, param1, param1, 0x7fff, 6, 1, 78); if (param3) { *param3 = 23; @@ -1418,8 +1418,8 @@ static void ov97_02234E7C(UnkStruct_ov97_02234A2C *param0) static void ov97_02234ECC(UnkStruct_ov97_02234A2C *param0) { Font_LoadTextPalette(0, 14 * 32, 78); - sub_0200DAA4(param0->unk_20, 0, 0x3F0, 14, 0, 78); - sub_0200DD0C(param0->unk_20, 0, (0x3F0 - (18 + 12)), 13, param0->unk_1C, 78); + LoadStandardWindowGraphics(param0->unk_20, 0, 0x3F0, 14, 0, 78); + LoadMessageBoxGraphics(param0->unk_20, 0, (0x3F0 - (18 + 12)), 13, param0->unk_1C, 78); memset(¶m0->unk_490, 0, sizeof(UnkStruct_ov97_02233DAC)); @@ -1482,8 +1482,8 @@ static void ov97_02234F88(UnkStruct_ov97_02234A2C *param0) Bg_CopyTilemapBufferToVRAM(param0->unk_20, 2); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 0); Font_LoadTextPalette(0, 14 * 32, 78); - sub_0200DAA4(param0->unk_20, 0, 0x3F0, 14, 0, 78); - sub_0200DD0C(param0->unk_20, 0, (0x3F0 - (18 + 12)), 13, param0->unk_1C, 78); + LoadStandardWindowGraphics(param0->unk_20, 0, 0x3F0, 14, 0, 78); + LoadMessageBoxGraphics(param0->unk_20, 0, (0x3F0 - (18 + 12)), 13, param0->unk_1C, 78); ov97_02234ECC(param0); param0->unk_490.unk_34 = 10; @@ -1493,7 +1493,7 @@ static void ov97_02234F88(UnkStruct_ov97_02234A2C *param0) static void ov97_02235158(Window *param0) { if (param0->bgConfig) { - sub_0200E084(param0, 0); + Window_EraseMessageBox(param0, 0); Window_ClearAndCopyToVRAM(param0); Window_Remove(param0); } @@ -1933,7 +1933,7 @@ static int ov97_022356E8(OverlayManager *param0, int *param1) v3->unk_490.unk_44 = 0; v3->unk_490.unk_34 = 40; ov97_02233DD0(v3, &v3->unk_490, 0); - v3->unk_E8F0.unk_08 = sub_0200E7FC(&v3->unk_4FC, (0x3F0 - (18 + 12))); + v3->unk_E8F0.unk_08 = Window_AddWaitDial(&v3->unk_4FC, (0x3F0 - (18 + 12))); *param1 = 10; break; case 2: @@ -1944,7 +1944,7 @@ static int ov97_022356E8(OverlayManager *param0, int *param1) break; case 10: ov97_02233CE4(v3); - DeleteWaitDial(v3->unk_E8F0.unk_08); + DestroyWaitDial(v3->unk_E8F0.unk_08); v3->unk_04 = 7; *param1 = 11; break; @@ -2074,7 +2074,7 @@ static int ov97_022356E8(OverlayManager *param0, int *param1) ov97_02233DD0(v3, &v3->unk_490, 0); sub_02015A54(v3->unk_E8EC); v3->unk_E8F0.unk_00 = 0; - v3->unk_E8F0.unk_08 = sub_0200E7FC(&v3->unk_4FC, (0x3F0 - (18 + 12))); + v3->unk_E8F0.unk_08 = Window_AddWaitDial(&v3->unk_4FC, (0x3F0 - (18 + 12))); *param1 = 21; ResetLock(4); break; @@ -2092,7 +2092,7 @@ static int ov97_022356E8(OverlayManager *param0, int *param1) v2 = ov97_02233B8C(v3); if (v2 != 10) { - DeleteWaitDial(v3->unk_E8F0.unk_08); + DestroyWaitDial(v3->unk_E8F0.unk_08); Sound_PlayEffect(1563); if (v2 == 11) { @@ -2113,7 +2113,7 @@ static int ov97_022356E8(OverlayManager *param0, int *param1) } break; case 23: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = v3->unk_24; } break; diff --git a/src/overlay097/ov97_02236380.c b/src/overlay097/ov97_02236380.c index b0dbadb663..810948f205 100644 --- a/src/overlay097/ov97_02236380.c +++ b/src/overlay097/ov97_02236380.c @@ -1363,12 +1363,12 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) v0 = BoxPokemon_EnterDecryptionContext(param1); v1 = GetGBABoxMonData(param0, 0, NULL); - BoxPokemon_SetValue(param1, 0, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_PERSONALITY, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 11, NULL); v1 = ov97_02236DD0(v1); - BoxPokemon_SetValue(param1, 5, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPECIES, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 12, NULL); @@ -1376,107 +1376,107 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) v1 = Item_FromGBAID(v1); } - BoxPokemon_SetValue(param1, 6, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HELD_ITEM, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 1, NULL); - BoxPokemon_SetValue(param1, 7, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_OT_ID, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 25, NULL); - BoxPokemon_SetValue(param1, 8, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_EXP, (u8 *)&v1); v1 = 70; - BoxPokemon_SetValue(param1, 9, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_FRIENDSHIP, (u8 *)&v1); v1 = ov97_02236E28(param0, param1); - BoxPokemon_SetValue(param1, 10, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_ABILITY, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 8, NULL); - BoxPokemon_SetValue(param1, 11, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_MARKS, (u8 *)&v1); v4 = GetGBABoxMonData(param0, 3, NULL); - BoxPokemon_SetValue(param1, 12, (u8 *)&v4); + BoxPokemon_SetValue(param1, MON_DATA_LANGUAGE, (u8 *)&v4); v1 = GetGBABoxMonData(param0, 26, NULL); - BoxPokemon_SetValue(param1, 13, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HP_EV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 27, NULL); - BoxPokemon_SetValue(param1, 14, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_ATK_EV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 28, NULL); - BoxPokemon_SetValue(param1, 15, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_DEF_EV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 29, NULL); - BoxPokemon_SetValue(param1, 16, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPEED_EV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 30, NULL); - BoxPokemon_SetValue(param1, 17, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPATK_EV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 31, NULL); - BoxPokemon_SetValue(param1, 18, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPDEF_EV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 22, NULL); - BoxPokemon_SetValue(param1, 19, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_COOL, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 23, NULL); - BoxPokemon_SetValue(param1, 20, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_BEAUTY, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 24, NULL); - BoxPokemon_SetValue(param1, 21, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_CUTE, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 33, NULL); - BoxPokemon_SetValue(param1, 22, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SMART, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 47, NULL); - BoxPokemon_SetValue(param1, 23, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_TOUGH, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 48, NULL); - BoxPokemon_SetValue(param1, 24, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SHEEN, (u8 *)&v1); - for (v2 = 0; v2 < 4; v2++) { + for (v2 = 0; v2 < LEARNED_MOVES_MAX; v2++) { v1 = GetGBABoxMonData(param0, 13 + v2, NULL); if (v1 > 354) { (void)0; } - BoxPokemon_SetValue(param1, 54 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_MOVE1 + v2, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 21, NULL); v1 = (v1 & (0x3 << (v2 * 2))) >> (v2 * 2); - BoxPokemon_SetValue(param1, 62 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_MOVE1_PP_UPS + v2, (u8 *)&v1); - v1 = BoxPokemon_GetValue(param1, 66 + v2, NULL); - BoxPokemon_SetValue(param1, 58 + v2, (u8 *)&v1); + v1 = BoxPokemon_GetValue(param1, MON_DATA_MOVE1_MAX_PP + v2, NULL); + BoxPokemon_SetValue(param1, MON_DATA_MOVE1_CUR_PP + v2, (u8 *)&v1); } v1 = GetGBABoxMonData(param0, 39, NULL); - BoxPokemon_SetValue(param1, 70, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HP_IV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 40, NULL); - BoxPokemon_SetValue(param1, 71, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_ATK_IV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 41, NULL); - BoxPokemon_SetValue(param1, 72, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_DEF_IV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 42, NULL); - BoxPokemon_SetValue(param1, 73, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPEED_IV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 43, NULL); - BoxPokemon_SetValue(param1, 74, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPATK_IV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 44, NULL); - BoxPokemon_SetValue(param1, 75, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_SPDEF_IV, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 45, NULL); - BoxPokemon_SetValue(param1, 76, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_IS_EGG, (u8 *)&v1); v3 = GetGBABoxMonData(param0, 50, NULL); if (v3 <= 4) { for (v2 = 0; v2 < v3; v2++) { v1 = 1; - BoxPokemon_SetValue(param1, 78 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_COOL_RIBBON + v2, (u8 *)&v1); } } @@ -1485,7 +1485,7 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) if (v3 <= 4) { for (v2 = 0; v2 < v3; v2++) { v1 = 1; - BoxPokemon_SetValue(param1, 82 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_BEAUTY_RIBBON + v2, (u8 *)&v1); } } @@ -1494,7 +1494,7 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) if (v3 <= 4) { for (v2 = 0; v2 < v3; v2++) { v1 = 1; - BoxPokemon_SetValue(param1, 86 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_CUTE_RIBBON + v2, (u8 *)&v1); } } @@ -1503,7 +1503,7 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) if (v3 <= 4) { for (v2 = 0; v2 < v3; v2++) { v1 = 1; - BoxPokemon_SetValue(param1, 90 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_SMART_RIBBON + v2, (u8 *)&v1); } } @@ -1512,60 +1512,60 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) if (v3 <= 4) { for (v2 = 0; v2 < v3; v2++) { v1 = 1; - BoxPokemon_SetValue(param1, 94 + v2, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_TOUGH_RIBBON + v2, (u8 *)&v1); } } v1 = GetGBABoxMonData(param0, 67, NULL); - BoxPokemon_SetValue(param1, 98, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_CHAMPION_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 68, NULL); - BoxPokemon_SetValue(param1, 99, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_WINNING_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 69, NULL); - BoxPokemon_SetValue(param1, 100, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_VICTORY_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 70, NULL); - BoxPokemon_SetValue(param1, 101, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_ARTIST_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 71, NULL); - BoxPokemon_SetValue(param1, 102, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_EFFORT_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 72, NULL); - BoxPokemon_SetValue(param1, 103, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_MARINE_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 73, NULL); - BoxPokemon_SetValue(param1, 104, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_LAND_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 74, NULL); - BoxPokemon_SetValue(param1, 105, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_SKY_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 75, NULL); - BoxPokemon_SetValue(param1, 106, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_COUNTRY_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 76, NULL); - BoxPokemon_SetValue(param1, 107, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_NATIONAL_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 77, NULL); - BoxPokemon_SetValue(param1, 108, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_EARTH_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 78, NULL); - BoxPokemon_SetValue(param1, 109, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_HOENN_WORLD_RIBBON, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 80, NULL); - BoxPokemon_SetValue(param1, 110, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_FATEFUL_ENCOUNTER, (u8 *)&v1); v1 = BoxPokemon_GetGender(param1); - BoxPokemon_SetValue(param1, 111, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_GENDER, (u8 *)&v1); - if (BoxPokemon_GetValue(param1, MON_DATA_SPECIES, NULL) == 201) { + if (BoxPokemon_GetValue(param1, MON_DATA_SPECIES, NULL) == SPECIES_UNOWN) { v1 = GetGBABoxMonData(param0, 0, NULL); v1 = (((v1 & 0x3000000) >> 18) | ((v1 & 0x30000) >> 12) | ((v1 & 0x300) >> 6) | (v1 & 0x3)) % 28; - BoxPokemon_SetValue(param1, 112, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_FORM, (u8 *)&v1); } - if (BoxPokemon_GetValue(param1, MON_DATA_SPECIES, NULL) == 386) { + if (BoxPokemon_GetValue(param1, MON_DATA_SPECIES, NULL) == SPECIES_DEOXYS) { switch (gCoreSys.unk_66) { default: case 2: @@ -1583,40 +1583,40 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) break; } - BoxPokemon_SetValue(param1, 112, (u8 *)&v1); + BoxPokemon_SetValue(param1, MON_DATA_FORM, (u8 *)&v1); } GetGBABoxMonData(param0, 2, &v5[0]); ov97_0223936C(&v5[0], &v6[0], 12, v4); - BoxPokemon_SetValue(param1, 118, &v6[0]); + BoxPokemon_SetValue(param1, MON_DATA_NICKNAME_AND_FLAG, &v6[0]); if (GetGBABoxMonData(param0, 3, NULL) != gGameLanguage) { v1 = 1; - BoxPokemon_SetValue(param1, 77, &v1); + BoxPokemon_SetValue(param1, MON_DATA_HAS_NICKNAME, &v1); } v1 = GetGBABoxMonData(param0, 37, NULL); - BoxPokemon_SetValue(param1, 122, &v1); + BoxPokemon_SetValue(param1, MON_DATA_MET_GAME, &v1); GetGBABoxMonData(param0, 7, &v5[0]); ov97_0223936C(&v5[0], &v6[0], 8, v4); - BoxPokemon_SetValue(param1, 144, &v6[0]); + BoxPokemon_SetValue(param1, MON_DATA_OTNAME, &v6[0]); v1 = GetGBABoxMonData(param0, 35, NULL); - BoxPokemon_SetValue(param1, 153, &v1); + BoxPokemon_SetValue(param1, MON_DATA_HATCH_LOCATION, &v1); v1 = GetGBABoxMonData(param0, 34, NULL); - BoxPokemon_SetValue(param1, 154, &v1); + BoxPokemon_SetValue(param1, MON_DATA_POKERUS, &v1); v1 = GetGBABoxMonData(param0, 38, NULL); - BoxPokemon_SetValue(param1, 155, &v1); + BoxPokemon_SetValue(param1, MON_DATA_POKEBALL, &v1); v1 = GetGBABoxMonData(param0, 36, NULL); - BoxPokemon_SetValue(param1, 156, &v1); + BoxPokemon_SetValue(param1, MON_DATA_MET_LEVEL, &v1); v1 = GetGBABoxMonData(param0, 49, NULL); - BoxPokemon_SetValue(param1, 157, &v1); + BoxPokemon_SetValue(param1, MON_DATA_OT_GENDER, &v1); BoxPokemon_ExitDecryptionContext(param1, v0); } diff --git a/src/overlay097/ov97_02237694.c b/src/overlay097/ov97_02237694.c index eb03b71b1f..465977d530 100644 --- a/src/overlay097/ov97_02237694.c +++ b/src/overlay097/ov97_02237694.c @@ -5,7 +5,6 @@ #include "constants/species.h" -#include "struct_decls/struct_0200112C_decl.h" #include "struct_defs/archived_sprite.h" #include "struct_defs/struct_0202DF40.h" @@ -25,10 +24,12 @@ #include "gx_layers.h" #include "heap.h" #include "item.h" +#include "list_menu.h" #include "message.h" #include "message_util.h" #include "overlay_manager.h" #include "pokemon.h" +#include "render_window.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" @@ -38,7 +39,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" #include "unk_02017728.h" @@ -149,9 +149,9 @@ void ov97_02237790(int param0, int param1, int *param2, int param3) UnkStruct_ov97_0223F550 *v0 = &Unk_ov97_0223F550; if (v0->unk_10 == 0) { - sub_0200F174(0, param0, param0, 0x0, 6, 1, v0->unk_08); + StartScreenTransition(0, param0, param0, 0x0, 6, 1, v0->unk_08); } else { - sub_0200F174(0, param0, param0, 0x7fff, 6, 1, v0->unk_08); + StartScreenTransition(0, param0, param0, 0x7fff, 6, 1, v0->unk_08); } if (param2) { @@ -165,7 +165,7 @@ void ov97_022377F0(int *param0) { UnkStruct_ov97_0223F550 *v0 = &Unk_ov97_0223F550; - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param0 = v0->unk_0C; } } @@ -284,9 +284,9 @@ int ov97_0223795C(BgConfig *param0, UnkStruct_ov97_02237808 *param1, int param2, if (param1->unk_04 == 1) { if (param1->unk_00 == 0) { - Window_Show(param1->unk_10, 0, param1->unk_38, param1->unk_3C); + Window_DrawStandardFrame(param1->unk_10, 0, param1->unk_38, param1->unk_3C); } else { - sub_0200E060(param1->unk_10, 0, param1->unk_38, param1->unk_3C); + Window_DrawMessageBoxWithScrollCursor(param1->unk_10, 0, param1->unk_38, param1->unk_3C); } } @@ -784,7 +784,7 @@ void ov97_02238324(UnkStruct_ov97_0223829C *param0, UnkUnion_ov97_0222D2B0 *para Heap_FreeToHeap(v1); } -void ov97_022383C4(BmpList *param0, u32 param1, u8 param2) +void ov97_022383C4(ListMenu *param0, u32 param1, u8 param2) { switch (param2) { case 0: diff --git a/src/overlay098/ov98_022471C8.c b/src/overlay098/ov98_022471C8.c index 63c5bb085e..e32c908299 100644 --- a/src/overlay098/ov98_022471C8.c +++ b/src/overlay098/ov98_022471C8.c @@ -4,17 +4,12 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02025CCC_decl.h" #include "struct_decls/struct_0202B370_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_02099F80.h" #include "overlay004/ov4_021D0D80.h" #include "overlay061/struct_ov61_0222C3B0.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay094/ov94_0223B140.h" #include "overlay098/ov98_02246C20.h" #include "overlay098/ov98_022499C8.h" @@ -29,22 +24,22 @@ #include "gx_layers.h" #include "heap.h" #include "inlines.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0201E3D8.h" @@ -78,14 +73,14 @@ typedef struct { Window unk_58; Window unk_68; Window unk_78; - UIControlData * unk_88; + Menu *unk_88; void * unk_8C; int unk_90; int unk_94; int unk_98; int unk_9C; - ResourceMetadata * unk_A0; - BmpList * unk_A4; + StringList *unk_A0; + ListMenu *unk_A4; int unk_A8; int unk_AC; int unk_B0; @@ -117,7 +112,7 @@ static void ov98_02247ACC(UnkStruct_ov98_02247704 * param0); static void ov98_02247AE8(UnkStruct_ov98_02247704 * param0, int param1, int param2); static void ov98_02247AF0(UnkStruct_ov98_02247704 * param0); static void ov98_02247B0C(UnkStruct_ov98_02247704 * param0); -static UIControlData *ov98_02247B24(BgConfig *param0, int param1, int param2); +static Menu *ov98_02247B24(BgConfig *param0, int param1, int param2); static int ov98_02247B98(UnkStruct_ov98_02247704 * param0); static int ov98_02247D30(UnkStruct_ov98_02247704 * param0); static int ov98_02247D50(UnkStruct_ov98_02247704 * param0); @@ -162,8 +157,8 @@ static int ov98_02249894(Window * param0, Strbuf *param1, int param2, int param3 void ov98_022498CC(Window *param0, Strbuf *param1, int param2, int param3, int param4, TextColor param5); static void ov98_02249900(UnkStruct_ov98_02247704 * param0, int param1); static void ov98_02249964(UnkStruct_ov98_02247704 * param0, int param1, int param2); -static void ov98_022499A0(BmpList * param0, u32 param1, u8 param2); -static void ov98_022499B4(BmpList * param0, u32 param1, u8 param2); +static void ov98_022499A0(ListMenu *param0, u32 param1, u8 param2); +static void ov98_022499B4(ListMenu *param0, u32 param1, u8 param2); static int (* Unk_ov98_02249D70[])(UnkStruct_ov98_02247704 *) = { ov98_02247B98, @@ -214,7 +209,7 @@ static const UnkStruct_ov98_02249BDC Unk_ov98_02249BEC[] = { {0x4, 0x1D} }; -static const UnkStruct_ov84_02240FA8 Unk_ov98_02249C0C = { +static const ListMenuTemplate Unk_ov98_02249C0C = { NULL, ov98_022499A0, NULL, @@ -247,7 +242,7 @@ static const UnkStruct_ov98_02249BDC Unk_ov98_02249BDC[] = { {0x4, 0x1D} }; -static const UnkStruct_ov84_02240FA8 Unk_ov98_02249C2C = { +static const ListMenuTemplate Unk_ov98_02249C2C = { NULL, ov98_022499B4, NULL, @@ -308,7 +303,7 @@ int ov98_022471C8 (OverlayManager * param0, int * param1) v0->unk_00 = OverlayManager_Args(param0); v0->unk_04 = BgConfig_New(109); - sub_0201DBEC(64, 109); + VRAMTransferManager_New(64, 109); SetAutorepeat(4, 8); ov98_02247510(v0->unk_04); sub_0201E3D8(); @@ -349,7 +344,7 @@ int ov98_022471C8 (OverlayManager * param0, int * param1) ov98_02246E9C(v0->unk_00, 0); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 109); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 109); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG0, 1); @@ -375,7 +370,7 @@ int ov98_022473D8 (OverlayManager * param0, int * param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 1; } break; @@ -394,7 +389,7 @@ int ov98_022473D8 (OverlayManager * param0, int * param1) } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -425,7 +420,7 @@ int ov98_02247440 (OverlayManager * param0, int * param1) ov98_022476D0(v0->unk_04); SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_0201E530(); RenderControlFlags_SetCanABSpeedUpPrint(0); RenderControlFlags_SetAutoScrollFlags(0); @@ -631,9 +626,9 @@ static void ov98_02247704 (UnkStruct_ov98_02247704 * param0) Graphics_LoadPaletteFromOpenNARC(v1, 3, 4, 0, 0, 109); Font_LoadScreenIndicatorsPalette(0, 13 * 0x20, 109); Font_LoadScreenIndicatorsPalette(4, 13 * 0x20, 109); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_08), 109); - sub_0200DAA4(v0, 0, (1 + (18 + 12)), 11, 0, 109); - sub_0200DAA4(v0, 2, (1 + (18 + 12)), 11, 0, 109); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_00->unk_08), 109); + LoadStandardWindowGraphics(v0, 0, (1 + (18 + 12)), 11, 0, 109); + LoadStandardWindowGraphics(v0, 2, (1 + (18 + 12)), 11, 0, 109); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 2, v0, 1, 0, 0, 0, 109); Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 5, v0, 1, 0, 32 * 24 * 2, 0, 109); Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 10, v0, 5, 0, 0, 0, 109); @@ -687,19 +682,19 @@ static void ov98_02247AE8 (UnkStruct_ov98_02247704 * param0, int param1, int par static void ov98_02247AF0 (UnkStruct_ov98_02247704 * param0) { if (param0->unk_8C == NULL) { - param0->unk_8C = sub_0200E7FC(¶m0->unk_48, 1); + param0->unk_8C = Window_AddWaitDial(¶m0->unk_48, 1); } } static void ov98_02247B0C (UnkStruct_ov98_02247704 * param0) { if (param0->unk_8C != NULL) { - DeleteWaitDial(param0->unk_8C); + DestroyWaitDial(param0->unk_8C); param0->unk_8C = NULL; } } -static UIControlData *ov98_02247B24(BgConfig *param0, int param1, int param2) +static Menu *ov98_02247B24(BgConfig *param0, int param1, int param2) { WindowTemplate v0; @@ -707,10 +702,10 @@ static UIControlData *ov98_02247B24(BgConfig *param0, int param1, int param2) v0.tilemapTop = param1; v0.baseTile = param2; - return sub_02002100(param0, &v0, (1 + (18 + 12)), 11, 109); + return Menu_MakeYesNoChoice(param0, &v0, (1 + (18 + 12)), 11, 109); } -static UIControlData *ov98_02247B58(BgConfig *param0, int param1, int param2, int param3) +static Menu *ov98_02247B58(BgConfig *param0, int param1, int param2, int param3) { WindowTemplate v0; @@ -718,7 +713,7 @@ static UIControlData *ov98_02247B58(BgConfig *param0, int param1, int param2, in v0.tilemapTop = param1; v0.baseTile = param2; - return sub_02002054(param0, &v0, (1 + (18 + 12)), 11, param3, 109); + return Menu_MakeYesNoChoiceWithCursorAt(param0, &v0, (1 + (18 + 12)), 11, param3, 109); } static int ov98_02247B98 (UnkStruct_ov98_02247704 * param0) @@ -729,7 +724,7 @@ static int ov98_02247B98 (UnkStruct_ov98_02247704 * param0) case 0: { int v1; - UnkStruct_ov84_02240FA8 v2; + ListMenuTemplate v2; const u8 * v3; const UnkStruct_ov98_02249BDC * v4; int v5; @@ -748,25 +743,25 @@ static int ov98_02247B98 (UnkStruct_ov98_02247704 * param0) Window_Add(param0->unk_04, ¶m0->unk_78, 0, v3[0], v3[1], v3[2], v3[3], 13, (((1 + (18 + 12)) + 9) + 27 * 4)); - param0->unk_A0 = sub_02013A04(v5, 109); + param0->unk_A0 = StringList_New(v5, 109); for (v1 = 0; v1 < v5; v1++) { - sub_02013A4C(param0->unk_A0, param0->unk_34, v4[v1].unk_00, v4[v1].unk_04); + StringList_AddFromMessageBank(param0->unk_A0, param0->unk_34, v4[v1].unk_00, v4[v1].unk_04); } - v2.unk_0C = ¶m0->unk_78; - v2.unk_00 = param0->unk_A0; - param0->unk_A4 = sub_0200112C(&v2, 0, 0, 109); + v2.window = ¶m0->unk_78; + v2.choices = param0->unk_A0; + param0->unk_A4 = ListMenu_New(&v2, 0, 0, 109); - Window_Show(¶m0->unk_78, 1, (1 + (18 + 12)), 11); - sub_0200E084(¶m0->unk_48, 1); + Window_DrawStandardFrame(¶m0->unk_78, 1, (1 + (18 + 12)), 11); + Window_EraseMessageBox(¶m0->unk_48, 1); Window_CopyToVRAM(¶m0->unk_78); } param0->unk_94++; break; case 1: - v0 = sub_02001288(param0->unk_A4); + v0 = ListMenu_ProcessInput(param0->unk_A4); switch (v0) { case 0xffffffff: @@ -785,9 +780,9 @@ static int ov98_02247B98 (UnkStruct_ov98_02247704 * param0) } break; default: - sub_02013A3C(param0->unk_A0); - sub_02001384(param0->unk_A4, NULL, NULL); - Window_Clear(¶m0->unk_78, 1); + StringList_Free(param0->unk_A0); + ListMenu_Free(param0->unk_A4, NULL, NULL); + Window_EraseStandardFrame(¶m0->unk_78, 1); Window_ClearAndCopyToVRAM(¶m0->unk_78); Window_Remove(¶m0->unk_78); param0->unk_08 = param0->unk_9C; @@ -823,7 +818,7 @@ static int ov98_02247D50 (UnkStruct_ov98_02247704 * param0) break; case 2: { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -863,7 +858,7 @@ static int ov98_02247E38 (UnkStruct_ov98_02247704 * param0) break; case 2: { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1097,7 +1092,7 @@ asm static int ov98_02248350 (UnkStruct_ov98_02247704 * param0) mov r1, #1 mov r2, #0x1f mov r3, #0xb - bl Window_Show + bl Window_DrawStandardFrame add r0, r5, #0 add r0, #0xc4 bl Window_CopyToVRAM @@ -1110,7 +1105,7 @@ asm static int ov98_02248350 (UnkStruct_ov98_02247704 * param0) mov r1, #1 mov r2, #0x1f mov r3, #0xb - bl Window_Show + bl Window_DrawStandardFrame add r0, r5, #0 add r0, #0xd4 bl Window_CopyToVRAM @@ -1126,7 +1121,7 @@ asm static int ov98_02248350 (UnkStruct_ov98_02247704 * param0) add r0, r5, #0 add r0, #0x48 mov r1, #1 - bl sub_0200E084 + bl Window_EraseMessageBox add r0, r5, #0 add r0, #0x48 bl Window_ClearAndCopyToVRAM @@ -1323,7 +1318,7 @@ asm static int ov98_02248350 (UnkStruct_ov98_02247704 * param0) _02248614: add r0, #0xc4 mov r1, #0 - bl Window_Clear + bl Window_EraseStandardFrame add r0, r5, #0 add r0, #0xc4 bl Window_ClearAndCopyToVRAM @@ -1333,7 +1328,7 @@ asm static int ov98_02248350 (UnkStruct_ov98_02247704 * param0) add r0, r5, #0 add r0, #0xd4 mov r1, #0 - bl Window_Clear + bl Window_EraseStandardFrame add r0, r5, #0 add r0, #0xd4 bl Window_ClearAndCopyToVRAM @@ -1382,7 +1377,7 @@ static int ov98_02248684 (UnkStruct_ov98_02247704 * param0) break; case 2: { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1412,7 +1407,7 @@ static int ov98_02248684 (UnkStruct_ov98_02247704 * param0) break; default: { - int v2 = sub_02002114(param0->unk_88, 109); + int v2 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v2 != 0xffffffff) { if (v2 == 0xfffffffe) { @@ -1476,7 +1471,7 @@ static int ov98_02248804 (UnkStruct_ov98_02247704 * param0) break; case 3: { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1504,7 +1499,7 @@ static int ov98_02248804 (UnkStruct_ov98_02247704 * param0) static int ov98_022488F8 (UnkStruct_ov98_02247704 * param0) { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1877,7 +1872,7 @@ static int ov98_02248DF4 (UnkStruct_ov98_02247704 * param0) break; case 2: { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1923,7 +1918,7 @@ static int ov98_02248EE0 (UnkStruct_ov98_02247704 * param0) break; case 2: { - int v0 = sub_02002114(param0->unk_88, 109); + int v0 = Menu_ProcessInputAndHandleExit(param0->unk_88, 109); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -2199,7 +2194,7 @@ static int ov98_02249414 (UnkStruct_ov98_02247704 * param0) static int ov98_02249438 (UnkStruct_ov98_02247704 * param0) { if (gCoreSys.pressedKeys & PAD_BUTTON_A || gCoreSys.pressedKeys & PAD_BUTTON_B) { - Window_Clear(¶m0->unk_68, 0); + Window_EraseStandardFrame(¶m0->unk_68, 0); param0->unk_08 = 0; } @@ -2214,7 +2209,7 @@ static int ov98_02249464 (UnkStruct_ov98_02247704 * param0) sub_02039794(); ov98_02247B0C(param0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 109); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 109); param0->unk_08 = 0; @@ -2389,7 +2384,7 @@ static void ov98_02249714 (UnkStruct_ov98_02247704 * param0, MessageLoader * par StringTemplate_Format(param0->unk_20, param0->unk_38, v0); Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_48, 0xf0f); - sub_0200E060(¶m0->unk_48, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_48, 0, 1, 10); param0->unk_44 = Text_AddPrinterWithParams(¶m0->unk_48, FONT_MESSAGE, param0->unk_38, 0, 0, param3, NULL); param0->unk_90 = 0; @@ -2490,7 +2485,7 @@ static void ov98_02249900 (UnkStruct_ov98_02247704 * param0, int param1) StringTemplate_Format(param0->unk_20, param0->unk_40, v0); Window_FillTilemap(¶m0->unk_68, 15); - Window_Show(¶m0->unk_68, 1, (1 + (18 + 12)), 11); + Window_DrawStandardFrame(¶m0->unk_68, 1, (1 + (18 + 12)), 11); param0->unk_44 = Text_AddPrinterWithParams(¶m0->unk_68, FONT_MESSAGE, param0->unk_40, 0, 0, TEXT_SPEED_INSTANT, NULL); param0->unk_44 = 0xff; @@ -2510,18 +2505,18 @@ static void ov98_02249964 (UnkStruct_ov98_02247704 * param0, int param1, int par StringTemplate_SetNumber(param0->unk_20, 0, param2, 5, 2, 1); - sub_0200E084(¶m0->unk_48, 1); + Window_EraseMessageBox(¶m0->unk_48, 1); ov98_02249900(param0, v0); } -static void ov98_022499A0 (BmpList * param0, u32 param1, u8 param2) +static void ov98_022499A0(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); } } -static void ov98_022499B4 (BmpList * param0, u32 param1, u8 param2) +static void ov98_022499B4(ListMenu *param0, u32 param1, u8 param2) { if (param2 == 0) { Sound_PlayEffect(1500); diff --git a/src/overlay098/ov98_022499C8.c b/src/overlay098/ov98_022499C8.c index 47afb1f3e2..54504a0cd5 100644 --- a/src/overlay098/ov98_022499C8.c +++ b/src/overlay098/ov98_022499C8.c @@ -75,7 +75,7 @@ int ov98_02249A80(Strbuf *param0, int param1) Strbuf_ToChars(param0, v0, 100); for (v2 = 0; v0[v2] != CHAR_EOS; v2++) { - if (v0[v2] != CHAR_EN_0) { + if (v0[v2] != CHAR_0) { v1 = FALSE; break; } diff --git a/src/overlay099/ov99_021D0D80.c b/src/overlay099/ov99_021D0D80.c index 69880ad7dd..949cf2f50d 100644 --- a/src/overlay099/ov99_021D0D80.c +++ b/src/overlay099/ov99_021D0D80.c @@ -120,7 +120,7 @@ int ov99_021D0D80(OverlayManager *param0, int *param1) v0->unk_08 = BgConfig_New(75); - sub_0201DBEC(64, 75); + VRAMTransferManager_New(64, 75); SetAutorepeat(4, 8); ov99_021D1380(v0->unk_08); @@ -192,7 +192,7 @@ int ov99_021D1028(OverlayManager *param0, int *param1) if (v0->unk_00->unk_04 && (gCoreSys.pressedKeys & PAD_BUTTON_START)) { if ((v0->unk_1100 == 0) && (v0->unk_1101 < 6)) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 75); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 75); v0->unk_1100 = 1; } } @@ -201,7 +201,7 @@ int ov99_021D1028(OverlayManager *param0, int *param1) case 0: break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (v0->unk_1102 == 1) { ov99_021D1CFC(v0, v0->unk_1101); v0->unk_1102 = 0; @@ -282,7 +282,7 @@ int ov99_021D11A8(OverlayManager *param0, int *param1) NARC_dtor(v0->unk_10F8); SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_0201E530(); OverlayManager_FreeData(param0); Heap_Destroy(75); @@ -354,7 +354,7 @@ static void ov99_021D1350(void *param0) UnkStruct_ov99_021D2CB0 *v0 = param0; sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_0C); Bg_RunScheduledUpdates(v0->unk_08); diff --git a/src/overlay099/ov99_021D3DE0.c b/src/overlay099/ov99_021D3DE0.c index 6a04702153..388e82f12d 100644 --- a/src/overlay099/ov99_021D3DE0.c +++ b/src/overlay099/ov99_021D3DE0.c @@ -16,19 +16,19 @@ BOOL ov99_021D3DE0(UnkStruct_ov99_021D2CB0 *param0, UnkStruct_ov99_021D3A40 *par switch (param1->unk_00) { case 0: - sub_0200F174(0, 1, 1, 0x0, 30, 1, 75); + StartScreenTransition(0, 1, 1, 0x0, 30, 1, 75); param1->unk_00++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if ((param0->unk_10FC > 10080) || (gCoreSys.pressedKeys & PAD_BUTTON_A) || (gCoreSys.pressedKeys & PAD_BUTTON_START)) { - sub_0200F174(0, 0, 0, 0x0, 45, 1, 75); + StartScreenTransition(0, 0, 0, 0x0, 45, 1, 75); param1->unk_00++; } } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; diff --git a/src/overlay100/ov100_021D0D80.c b/src/overlay100/ov100_021D0D80.c index 3a59d68427..7a68da327a 100644 --- a/src/overlay100/ov100_021D0D80.c +++ b/src/overlay100/ov100_021D0D80.c @@ -25,9 +25,9 @@ #include "narc.h" #include "overlay_manager.h" #include "palette.h" +#include "render_window.h" #include "unk_020041CC.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -56,7 +56,7 @@ int ov100_021D0D80(OverlayManager *param0, int *param1) v0->unk_D0 = OverlayManager_Args(param0); ov100_021D1034(&v0->unk_0C); - sub_0200F174(0, 1, 1, 0x0, 6 * 2, 1, 111); + StartScreenTransition(0, 1, 1, 0x0, 6 * 2, 1, 111); SetMainCallback(ov100_021D13B4, v0); v0->unk_0C.unk_50.unk_00 = 31; @@ -75,10 +75,10 @@ int ov100_021D0D80(OverlayManager *param0, int *param1) Window_FillTilemap(v1, 0xFF); Window_CopyToVRAM(v1); - sub_0200DD0C(v0->unk_0C.unk_0C, 1, 500, 15, v2, 111); - PaletteData_LoadBufferFromFileStart(v0->unk_0C.unk_10, 38, sub_0200DD08(v2), 111, 0, 0x20, 15 * 16); + LoadMessageBoxGraphics(v0->unk_0C.unk_0C, 1, 500, 15, v2, 111); + PaletteData_LoadBufferFromFileStart(v0->unk_0C.unk_10, 38, GetMessageBoxPaletteNARCMember(v2), 111, 0, 0x20, 15 * 16); PaletteData_LoadBufferFromFileStart(v0->unk_0C.unk_10, 14, 7, 111, 0, 0x20, 14 * 16); - sub_0200E060(v1, 0, 500, 15); + Window_DrawMessageBoxWithScrollCursor(v1, 0, 500, 15); ov100_021D4788(&v0->unk_0C); } @@ -144,7 +144,7 @@ int ov100_021D0F44(OverlayManager *param0, int *param1) SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0200E084(&v0->unk_0C.unk_30, 1); + Window_EraseMessageBox(&v0->unk_0C.unk_30, 1); Window_ClearAndCopyToVRAM(&v0->unk_0C.unk_30); Window_Remove(&v0->unk_0C.unk_30); @@ -447,7 +447,7 @@ static void ov100_021D13B4(void *param0) UnkStruct_ov100_021D4DD8 *v0 = param0; sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_0C.unk_10); Bg_RunScheduledUpdates(v0->unk_0C.unk_0C); diff --git a/src/overlay100/ov100_021D13E4.c b/src/overlay100/ov100_021D13E4.c index ce823277aa..84a14c5e01 100644 --- a/src/overlay100/ov100_021D13E4.c +++ b/src/overlay100/ov100_021D13E4.c @@ -107,10 +107,10 @@ BOOL ov100_021D14A8(void *param0) switch (v0->unk_00) { case 0: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 111); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 111); v0->unk_00++; case 1: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } @@ -171,7 +171,7 @@ BOOL ov100_021D14A8(void *param0) if ((++v0->unk_7C4->unk_50.unk_03) != (+16)) { G2S_SetBlendBrightness((GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD), v0->unk_7C4->unk_50.unk_03); } else { - sub_0200F174(0, 0, 0, 0x7fff, 1, 1, 111); + StartScreenTransition(0, 0, 0, 0x7fff, 1, 1, 111); v0->unk_00 = 0; return 0; } diff --git a/src/overlay100/ov100_021D1C44.c b/src/overlay100/ov100_021D1C44.c index 580c9eebb9..2d36cfb061 100644 --- a/src/overlay100/ov100_021D1C44.c +++ b/src/overlay100/ov100_021D1C44.c @@ -306,13 +306,13 @@ BOOL ov100_021D2428(void *param0) switch (v0->unk_00) { case 0: - sub_0200F174(0, 1, 1, 0x7fff, 6, 1, 111); + StartScreenTransition(0, 1, 1, 0x7fff, 6, 1, 111); v0->unk_1EBC->unk_50.unk_03 = 0; G2_SetBlendBrightness((GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD), v0->unk_1EBC->unk_50.unk_03); G2S_SetBlendBrightness((GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD), v0->unk_1EBC->unk_50.unk_03); v0->unk_00++; case 1: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } v0->unk_00++; @@ -645,10 +645,10 @@ BOOL ov100_021D2428(void *param0) } break; case 20: - sub_0200F174(0, 0, 0, 0x0, 1, 1, 111); + StartScreenTransition(0, 0, 0, 0x0, 1, 1, 111); v0->unk_00++; case 21: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } diff --git a/src/overlay100/ov100_021D2F0C.c b/src/overlay100/ov100_021D2F0C.c index 82ca221018..e817a218d3 100644 --- a/src/overlay100/ov100_021D2F0C.c +++ b/src/overlay100/ov100_021D2F0C.c @@ -413,7 +413,7 @@ BOOL ov100_021D39E4(void *param0) switch (v0->unk_00) { case 0: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } @@ -648,12 +648,12 @@ BOOL ov100_021D39E4(void *param0) Easy3DObject_SetScale(&v0->unk_0C.unk_934[0].unk_00, v0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[0].unk_150); Easy3DObject_SetScale(&v0->unk_0C.unk_934[1].unk_00, v0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[1].unk_150); } else { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 111); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 111); v0->unk_00++; } break; case 16: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } diff --git a/src/overlay100/ov100_021D46C8.c b/src/overlay100/ov100_021D46C8.c index 7856a5845b..218f8035f7 100644 --- a/src/overlay100/ov100_021D46C8.c +++ b/src/overlay100/ov100_021D46C8.c @@ -21,11 +21,11 @@ #include "message.h" #include "narc.h" #include "palette.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200DA60.h" int ov100_021D46C8(UnkStruct_ov100_021D46C8 *param0, UnkStruct_020985E4 *param1, int param2) { @@ -56,7 +56,7 @@ int ov100_021D46C8(UnkStruct_ov100_021D46C8 *param0, UnkStruct_020985E4 *param1, v0 = Text_AddPrinterWithParams(¶m0->unk_30, FONT_MESSAGE, v3, 0, 0, v4, NULL); Window_CopyToVRAM(¶m0->unk_30); - sub_0200E060(¶m0->unk_30, 0, 500, 15); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_30, 0, 500, 15); Strbuf_Free(v2); Strbuf_Free(v3); @@ -67,7 +67,7 @@ int ov100_021D46C8(UnkStruct_ov100_021D46C8 *param0, UnkStruct_020985E4 *param1, void ov100_021D4788(UnkStruct_ov100_021D46C8 *param0) { - sub_0200E084(¶m0->unk_30, 1); + Window_EraseMessageBox(¶m0->unk_30, 1); Window_ClearAndCopyToVRAM(¶m0->unk_30); } diff --git a/src/overlay101/ov101_021D0D80.c b/src/overlay101/ov101_021D0D80.c index 07a78952db..9ba0c8a90b 100644 --- a/src/overlay101/ov101_021D0D80.c +++ b/src/overlay101/ov101_021D0D80.c @@ -25,6 +25,7 @@ #include "message.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -33,7 +34,6 @@ #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -106,7 +106,7 @@ int ov101_021D0D80(OverlayManager *param0, int *param1) ov101_021D5C28(v1); sub_02004550(66, 0, 0); ov101_021D18C0(v1); - sub_0200F174(0, 1, 1, 0x0, 8, 1, 79); + StartScreenTransition(0, 1, 1, 0x0, 8, 1, 79); return 1; } @@ -118,19 +118,19 @@ int ov101_021D0E40(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (*param1)++; } break; case 1: if (ov101_021D1AAC(v1) == 1) { (*param1)++; - sub_0200F174(2, 0, 0, 0x0, 8, 1, 79); + StartScreenTransition(2, 0, 0, 0x0, 8, 1, 79); ov101_021D1894(v1, UnkEnum_ov101_021D1894_00); } break; case 2: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } (*param1)++; @@ -430,8 +430,8 @@ void ov101_021D13C8(UnkStruct_ov101_021D13C8 *param0) int v0; UnkStruct_ov101_021D148C *v1 = ¶m0->unk_408; - sub_0200DAA4(param0->unk_43C, 0, 1, 15, 0, 79); - sub_0200DD0C(param0->unk_43C, 0, (1 + (18 + 12)), 14, param0->unk_4C4, 79); + LoadStandardWindowGraphics(param0->unk_43C, 0, 1, 15, 0, 79); + LoadMessageBoxGraphics(param0->unk_43C, 0, (1 + (18 + 12)), 14, param0->unk_4C4, 79); Font_LoadScreenIndicatorsPalette(0, 15 * 32, 79); v1->unk_00 = MessageLoader_Init(0, 26, 544, 79); @@ -463,7 +463,7 @@ void ov101_021D148C(UnkStruct_ov101_021D13C8 *param0, u32 param1) { UnkStruct_ov101_021D148C *v0 = ¶m0->unk_408; - sub_0200E060(&v0->unk_08[0], 1, (1 + (18 + 12)), 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_08[0], 1, (1 + (18 + 12)), 14); Window_FillTilemap(&v0->unk_08[0], 15); MessageLoader_GetStrbuf(v0->unk_00, param1, v0->unk_18); Text_AddPrinterWithParams(&v0->unk_08[0], FONT_MESSAGE, v0->unk_18, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); @@ -474,7 +474,7 @@ void ov101_021D14E4(UnkStruct_ov101_021D13C8 *param0) { UnkStruct_ov101_021D148C *v0 = ¶m0->unk_408; - sub_0200E084(&v0->unk_08[0], 1); + Window_EraseMessageBox(&v0->unk_08[0], 1); Window_FillTilemap(&v0->unk_08[0], 0); Window_ScheduleCopyToVRAM(&v0->unk_08[0]); } diff --git a/src/overlay101/ov101_021D7E48.c b/src/overlay101/ov101_021D7E48.c index 6483b04096..28f149f5f4 100644 --- a/src/overlay101/ov101_021D7E48.c +++ b/src/overlay101/ov101_021D7E48.c @@ -62,7 +62,7 @@ UnkStruct_ov101_021D7E48 *ov101_021D7E48(u32 param0, u32 param1, u32 param2, u32 v0->unk_0C = sub_020095C4(param1, &v0->unk_10, param0); v0->unk_19C = sub_0201DCC8(param2, param0); - sub_0201DBEC(param2, param0); + VRAMTransferManager_New(param2, param0); v0->unk_1A0 = SpriteResourceCollection_New(param3, 0, param0); v0->unk_1A4 = SpriteResourceCollection_New(param4, 1, param0); @@ -132,7 +132,7 @@ void ov101_021D7FB4(UnkStruct_ov101_021D7E48 *param0) Heap_FreeToHeap(param0->unk_1B4); Heap_FreeToHeap(param0->unk_1B8); Heap_FreeToHeap(param0->unk_1BC); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_0201DCF0(param0->unk_19C); CellActorCollection_DeleteAll(param0->unk_0C); CellActorCollection_Delete(param0->unk_0C); diff --git a/src/overlay102/ov102_021D0D80.c b/src/overlay102/ov102_021D0D80.c index d3e28f282f..d08703eb10 100644 --- a/src/overlay102/ov102_021D0D80.c +++ b/src/overlay102/ov102_021D0D80.c @@ -114,11 +114,11 @@ int ov102_021D0E2C(OverlayManager *param0, int *param1) ; Bg_ToggleLayer(7, 1); ; - sub_0200F174(0, 1, 1, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, v0->unk_00); *param1 = 1; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0->unk_40 = 0; *param1 = 2; } @@ -142,12 +142,12 @@ int ov102_021D0E2C(OverlayManager *param0, int *param1) break; case 4: if (((gCoreSys.pressedKeys & PAD_BUTTON_A) == PAD_BUTTON_A) || ((gCoreSys.pressedKeys & PAD_BUTTON_B) == PAD_BUTTON_B) || (gCoreSys.touchPressed)) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, v0->unk_00); *param1 = 5; } break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v1 = 1; } break; diff --git a/src/overlay104/ov104_0222DCE0.c b/src/overlay104/ov104_0222DCE0.c index ceeb62cbeb..3e8d60b85d 100644 --- a/src/overlay104/ov104_0222DCE0.c +++ b/src/overlay104/ov104_0222DCE0.c @@ -269,49 +269,49 @@ void ov104_0222DF40(const UnkStruct_ov104_0223A348_sub2 *param0, Pokemon *param1 v1 = (param0->unk_14_val2 & 0x3FFFFFFF); - Pokemon_InitWith(param1, param0->unk_00_val1_0, v4, v1, 1, param0->unk_10, 2, 0); - Pokemon_SetValue(param1, 175, &v1); + Pokemon_InitWith(param1, param0->unk_00_val1_0, v4, v1, TRUE, param0->unk_10, OTID_NOT_SHINY, 0); + Pokemon_SetValue(param1, MON_DATA_COMBINED_IVS, &v1); Pokemon_CalcLevelAndStats(param1); v2 = param0->unk_00_val1_11; - Pokemon_SetValue(param1, 112, &v2); - Pokemon_SetValue(param1, 6, ¶m0->unk_02); + Pokemon_SetValue(param1, MON_DATA_FORM, &v2); + Pokemon_SetValue(param1, MON_DATA_HELD_ITEM, ¶m0->unk_02); - for (v0 = 0; v0 < 4; v0++) { + for (v0 = 0; v0 < LEARNED_MOVES_MAX; v0++) { v5 = param0->unk_04[v0]; - Pokemon_SetValue(param1, 54 + v0, &v5); + Pokemon_SetValue(param1, MON_DATA_MOVE1 + v0, &v5); v2 = (param0->unk_1E_val2 >> (v0 * 2)) & 0x3; - Pokemon_SetValue(param1, 62 + v0, &v2); + Pokemon_SetValue(param1, MON_DATA_MOVE1_PP_UPS + v0, &v2); v3 = (u8)Pokemon_GetValue(param1, MON_DATA_MOVE1_MAX_PP + v0, NULL); - Pokemon_SetValue(param1, 58 + v0, &v3); + Pokemon_SetValue(param1, MON_DATA_MOVE1_CUR_PP + v0, &v3); } v6 = param0->unk_0C; - Pokemon_SetValue(param1, 7, &v6); + Pokemon_SetValue(param1, MON_DATA_OT_ID, &v6); v2 = param0->unk_18_val1_00; - Pokemon_SetValue(param1, 13, &v2); + Pokemon_SetValue(param1, MON_DATA_HP_EV, &v2); v2 = param0->unk_18_val1_01; - Pokemon_SetValue(param1, 14, &v2); + Pokemon_SetValue(param1, MON_DATA_ATK_EV, &v2); v2 = param0->unk_18_val1_02; - Pokemon_SetValue(param1, 15, &v2); + Pokemon_SetValue(param1, MON_DATA_DEF_EV, &v2); v2 = param0->unk_18_val1_03; - Pokemon_SetValue(param1, 16, &v2); + Pokemon_SetValue(param1, MON_DATA_SPEED_EV, &v2); v2 = param0->unk_18_val1_04; - Pokemon_SetValue(param1, 17, &v2); + Pokemon_SetValue(param1, MON_DATA_SPATK_EV, &v2); v2 = param0->unk_18_val1_05; - Pokemon_SetValue(param1, 18, &v2); + Pokemon_SetValue(param1, MON_DATA_SPDEF_EV, &v2); - Pokemon_SetValue(param1, 10, ¶m0->unk_20); - Pokemon_SetValue(param1, 9, ¶m0->unk_21); + Pokemon_SetValue(param1, MON_DATA_ABILITY, ¶m0->unk_20); + Pokemon_SetValue(param1, MON_DATA_FRIENDSHIP, ¶m0->unk_21); if (param0->unk_14_val1_30) { MessageLoader *v7; @@ -320,14 +320,14 @@ void ov104_0222DF40(const UnkStruct_ov104_0223A348_sub2 *param0, Pokemon *param1 v7 = MessageLoader_Init(1, 26, 412, 4); v8 = MessageLoader_GetNewStrbuf(v7, param0->unk_00_val1_0); - Pokemon_SetValue(param1, 119, v8); + Pokemon_SetValue(param1, MON_DATA_NICKNAME_STRBUF, v8); Strbuf_Free(v8); MessageLoader_Free(v7); } else { - Pokemon_SetValue(param1, 117, param0->unk_22); + Pokemon_SetValue(param1, MON_DATA_NICKNAME, param0->unk_22); } - Pokemon_SetValue(param1, 12, ¶m0->unk_1F); + Pokemon_SetValue(param1, MON_DATA_LANGUAGE, ¶m0->unk_1F); Pokemon_CalcLevelAndStats(param1); } @@ -364,8 +364,8 @@ void ov104_0222E134(SaveData *param0, Pokemon *param1) v2 = MessageLoader_Init(0, 26, 363, 11); v1 = MessageLoader_GetNewStrbuf(v2, 0); - Pokemon_SetValue(param1, 145, v1); - Pokemon_SetValue(param1, 7, &v0); + Pokemon_SetValue(param1, MON_DATA_OTNAME_STRBUF, v1); + Pokemon_SetValue(param1, MON_DATA_OT_ID, &v0); Strbuf_Free(v1); MessageLoader_Free(v2); diff --git a/src/overlay104/ov104_0222FBE4.c b/src/overlay104/ov104_0222FBE4.c index 50583524d9..872bd0029f 100644 --- a/src/overlay104/ov104_0222FBE4.c +++ b/src/overlay104/ov104_0222FBE4.c @@ -67,11 +67,13 @@ #include "field_comm_manager.h" #include "game_records.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "palette.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" @@ -80,11 +82,9 @@ #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_0200A9DC.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02014000.h" #include "unk_02017728.h" @@ -840,7 +840,7 @@ static BOOL ov104_0222FF90(UnkStruct_ov104_0222E930 *param0) u16 v2 = ov104_0222EA48(param0); u16 v3 = ov104_0222EA48(param0); - sub_0200F174(0, v2, v2, v3, v0, v1, 11); + StartScreenTransition(0, v2, v2, v3, v0, v1, 11); sub_0200F32C(0); sub_0200F32C(1); @@ -855,7 +855,7 @@ static BOOL ov104_0222FFD8(UnkStruct_ov104_0222E930 *param0) static BOOL ov104_0222FFE8(UnkStruct_ov104_0222E930 *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } @@ -1009,7 +1009,7 @@ static BOOL ov104_02230260(UnkStruct_ov104_0222E930 *param0) u16 v2 = ov104_0222EA48(param0); u8 v3 = (*((param0)->unk_1C++)); - v0->unk_74 = sub_02002054(v1->unk_00, &Unk_ov104_0223F640, ((1024 - (18 + 12)) - 9), 12, v3, v0->unk_34); + v0->unk_74 = Menu_MakeYesNoChoiceWithCursorAt(v1->unk_00, &Unk_ov104_0223F640, ((1024 - (18 + 12)) - 9), 12, v3, v0->unk_34); param0->unk_78[0] = v2; ov104_0222E974(param0, ov104_022302B4); @@ -1023,7 +1023,7 @@ static BOOL ov104_022302B4(UnkStruct_ov104_0222E930 *param0) UnkStruct_ov104_022320B4 *v1 = param0->unk_00; u16 *v2 = ov104_0222FC14(param0, param0->unk_78[0]); - v0 = sub_02002114(v1->unk_74, v1->unk_34); + v0 = Menu_ProcessInputAndHandleExit(v1->unk_74, v1->unk_34); if (v0 == 0xffffffff) { return 0; @@ -1774,7 +1774,7 @@ static BOOL ov104_02230CAC(UnkStruct_ov104_0222E930 *param0) { UnkStruct_ov104_022320B4 *v0 = param0->unk_00; - v0->unk_7C = sub_0200E7FC(&v0->unk_64, (1024 - (18 + 12))); + v0->unk_7C = Window_AddWaitDial(&v0->unk_64, (1024 - (18 + 12))); return 0; } @@ -1782,7 +1782,7 @@ static BOOL ov104_02230CC4(UnkStruct_ov104_0222E930 *param0) { UnkStruct_ov104_022320B4 *v0 = param0->unk_00; - DeleteWaitDial(v0->unk_7C); + DestroyWaitDial(v0->unk_7C); return 0; } @@ -2095,11 +2095,11 @@ static BOOL ov104_02231148(UnkStruct_ov104_02231148 *param0) sub_0200F32C(0); sub_0200F32C(1); - sub_0200F174(0, 32, 32, 0x0, 12, 1, 11); + StartScreenTransition(0, 32, 32, 0x0, 12, 1, 11); param0->unk_04++; break; default: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 0; } break; @@ -2143,7 +2143,7 @@ static BOOL ov104_022311BC(UnkStruct_ov104_02231148 *param0) } } break; default: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov104_0223EBD0(param0->unk_2C); Window_ClearAndCopyToVRAM(param0->unk_28); @@ -2198,7 +2198,7 @@ static BOOL ov104_022312D8(UnkStruct_ov104_02231148 *param0) } break; default: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov104_0223EBD0(param0->unk_2C); Window_ClearAndCopyToVRAM(param0->unk_28); diff --git a/src/overlay104/ov104_02231F74.c b/src/overlay104/ov104_02231F74.c index 1c8bf75c5b..beac558500 100644 --- a/src/overlay104/ov104_02231F74.c +++ b/src/overlay104/ov104_02231F74.c @@ -3,24 +3,18 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C6E4_decl.h" #include "struct_decls/struct_0200C704_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_defs/archived_sprite.h" #include "struct_defs/sentence.h" #include "struct_defs/sprite_template.h" #include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" #include "overlay063/ov63_0222BE18.h" #include "overlay063/ov63_0222CCE4.h" #include "overlay063/ov63_0222D77C.h" #include "overlay063/struct_ov63_0222BEC0_decl.h" #include "overlay063/struct_ov63_0222CCB8.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay104/ov104_0222E63C.h" #include "overlay104/ov104_0222E930.h" #include "overlay104/struct_ov104_0222E930_decl.h" @@ -40,23 +34,24 @@ #include "font.h" #include "game_options.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "palette.h" #include "pokemon.h" #include "pokemon_icon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_020131EC.h" #include "unk_02014A84.h" @@ -86,14 +81,14 @@ typedef struct UnkStruct_ov104_02232B5C_t { u8 unk_9B; u16 *unk_9C; u16 *unk_A0; - UnkStruct_02081CF4 unk_A4; - UIControlData *unk_B0; - ResourceMetadata unk_B4[28]; - UnkStruct_ov84_02240FA8 unk_194; - BmpList *unk_1B4; + MenuTemplate unk_A4; + Menu *unk_B0; + StringList unk_B4[28]; + ListMenuTemplate unk_194; + ListMenu *unk_1B4; u16 unk_1B8; u16 unk_1BA; - ResourceMetadata unk_1BC[28]; + StringList unk_1BC[28]; u16 unk_29C[28]; u16 unk_2D4; } UnkStruct_ov104_02232B5C; @@ -126,8 +121,8 @@ void ov104_02232624(UnkStruct_ov104_02232B5C *param0); static void ov104_02232750(UnkStruct_ov104_02232B5C *param0, u32 param1, u32 param2, u32 param3); static u32 ov104_022327F0(UnkStruct_ov104_02232B5C *param0); static void ov104_02232830(UnkStruct_ov104_02232B5C *param0); -static void ov104_0223293C(BmpList *param0, u32 param1, u8 param2); -static void ov104_02232960(BmpList *param0, u32 param1, u8 param2); +static void ov104_0223293C(ListMenu *param0, u32 param1, u8 param2); +static void ov104_02232960(ListMenu *param0, u32 param1, u8 param2); static void ov104_0223296C(SysTask *param0, void *param1); static void ov104_02232A58(UnkStruct_ov104_02232B5C *param0, u8 param1); static void ov104_02232B2C(UnkStruct_ov104_02232B5C *param0); @@ -172,7 +167,7 @@ static void ov104_02231FC4(UnkStruct_ov104_022320B4 *param0) Window_Add( v0->unk_00, ¶m0->unk_64, 1, 2, 19, 27, 4, 13, (((1024 - (18 + 12)) - 9) - (27 * 4))); Window_FillTilemap(¶m0->unk_64, 15); - sub_0200E060(¶m0->unk_64, 0, (1024 - (18 + 12)), 11); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_64, 0, (1024 - (18 + 12)), 11); param0->unk_5A = 1; } else { @@ -198,7 +193,7 @@ void ov104_02232088(UnkStruct_ov104_022320B4 *param0) { GF_ASSERT(param0->unk_5A == 1); - sub_0200E084(¶m0->unk_64, 0); + Window_EraseMessageBox(¶m0->unk_64, 0); Window_Remove(¶m0->unk_64); param0->unk_5A = 0; @@ -263,13 +258,13 @@ static void ov104_0223214C(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_022 param1->unk_2D4 = param4; for (v0 = 0; v0 < 28; v0++) { - param1->unk_B4[v0].unk_00 = NULL; - param1->unk_B4[v0].unk_04 = 0; + param1->unk_B4[v0].entry = NULL; + param1->unk_B4[v0].index = 0; } for (v0 = 0; v0 < 28; v0++) { - param1->unk_1BC[v0].unk_00 = NULL; - param1->unk_1BC[v0].unk_04 = 0; + param1->unk_1BC[v0].entry = NULL; + param1->unk_1BC[v0].index = 0; param1->unk_29C[v0] = 0xff; } @@ -326,9 +321,9 @@ void ov104_022322B0(UnkStruct_ov104_02232B5C *param0) } Window_Add(v1->unk_00, ¶m0->unk_08, 1, param0->unk_98, param0->unk_99, v0, param0->unk_9B * 2, 14, 1); - Window_Show(¶m0->unk_08, 1, 985, 12); + Window_DrawStandardFrame(¶m0->unk_08, 1, 985, 12); ov104_02232454(param0); - param0->unk_B0 = sub_02001B9C(¶m0->unk_A4, param0->unk_96, param0->unk_00->unk_34); + param0->unk_B0 = Menu_NewSimple(¶m0->unk_A4, param0->unk_96, param0->unk_00->unk_34); ov104_022325D8(param0); param0->unk_04 = SysTask_Start(ov104_022324C8, param0, 0); } @@ -343,12 +338,12 @@ static void ov104_02232390(UnkStruct_ov104_02232B5C *param0, u32 param1, u32 par MessageLoader_GetStrbuf(param0->unk_8C, param1, v2); StringTemplate_Format(param0->unk_90, param0->unk_1C[param0->unk_9B], v2); - param0->unk_B4[param0->unk_9B].unk_00 = (const void *)param0->unk_1C[param0->unk_9B]; + param0->unk_B4[param0->unk_9B].entry = (const void *)param0->unk_1C[param0->unk_9B]; Strbuf_Free(v2); } param0->unk_29C[param0->unk_9B] = param2; - param0->unk_B4[param0->unk_9B].unk_04 = param3; + param0->unk_B4[param0->unk_9B].index = param3; param0->unk_9B++; return; @@ -363,11 +358,11 @@ static u32 ov104_02232414(UnkStruct_ov104_02232B5C *param0) v2 = 0; for (v0 = 0; v0 < param0->unk_9B; v0++) { - if (param0->unk_B4[v0].unk_00 == NULL) { + if (param0->unk_B4[v0].entry == NULL) { break; } - v1 = Font_CalcStrbufWidth(FONT_SYSTEM, (Strbuf *)param0->unk_B4[v0].unk_00, 0); + v1 = Font_CalcStrbufWidth(FONT_SYSTEM, (Strbuf *)param0->unk_B4[v0].entry, 0); if (v2 < v1) { v2 = v1; @@ -379,18 +374,18 @@ static u32 ov104_02232414(UnkStruct_ov104_02232B5C *param0) static void ov104_02232454(UnkStruct_ov104_02232B5C *param0) { - param0->unk_A4.unk_00 = param0->unk_B4; - param0->unk_A4.unk_04 = ¶m0->unk_08; - param0->unk_A4.unk_08 = 0; - param0->unk_A4.unk_09 = 1; - param0->unk_A4.unk_0A = param0->unk_9B; - param0->unk_A4.unk_0B_0 = 0; - param0->unk_A4.unk_0B_4 = 0; + param0->unk_A4.choices = param0->unk_B4; + param0->unk_A4.window = ¶m0->unk_08; + param0->unk_A4.fontID = FONT_SYSTEM; + param0->unk_A4.xSize = 1; + param0->unk_A4.ySize = param0->unk_9B; + param0->unk_A4.lineSpacing = 0; + param0->unk_A4.suppressCursor = FALSE; if (param0->unk_9B >= 4) { - param0->unk_A4.unk_0B_6 = 1; + param0->unk_A4.loopAround = TRUE; } else { - param0->unk_A4.unk_0B_6 = 0; + param0->unk_A4.loopAround = FALSE; } return; @@ -406,11 +401,11 @@ static void ov104_022324C8(SysTask *param0, void *param1) return; } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } - v0 = sub_02001BE0(v1->unk_B0); + v0 = Menu_ProcessInput(v1->unk_B0); if ((gCoreSys.pressedKeysRepeatable & PAD_KEY_UP) || (gCoreSys.pressedKeysRepeatable & PAD_KEY_DOWN) || (gCoreSys.pressedKeysRepeatable & PAD_KEY_LEFT) || (gCoreSys.pressedKeysRepeatable & PAD_KEY_RIGHT)) { ov104_022325D8(v1); @@ -444,9 +439,9 @@ static void ov104_02232570(UnkStruct_ov104_02232B5C *param0) Sound_PlayEffect(1500); - sub_02001BC4(param0->unk_B0, NULL); - Window_Clear(param0->unk_A4.unk_04, 0); - Window_Remove(param0->unk_A4.unk_04); + Menu_Free(param0->unk_B0, NULL); + Window_EraseStandardFrame(param0->unk_A4.window, 0); + Window_Remove(param0->unk_A4.window); for (v0 = 0; v0 < 28; v0++) { Strbuf_Free(param0->unk_1C[v0]); @@ -465,7 +460,7 @@ static void ov104_022325D8(UnkStruct_ov104_02232B5C *param0) { u8 v0; - v0 = sub_02001DC4(param0->unk_B0); + v0 = Menu_GetCursorPos(param0->unk_B0); if (param0->unk_29C[v0] != 0xff) { ov104_02232AC4(param0, param0->unk_29C[v0], TEXT_SPEED_INSTANT); @@ -512,9 +507,9 @@ void ov104_02232624(UnkStruct_ov104_02232B5C *param0) } Window_Add(v1->unk_00, ¶m0->unk_08, 1, param0->unk_98, param0->unk_99, v0, param0->unk_9B * 2, 14, 1); } - Window_Show(¶m0->unk_08, 1, 985, 12); + Window_DrawStandardFrame(¶m0->unk_08, 1, 985, 12); ov104_02232830(param0); - param0->unk_1B4 = sub_0200112C((const UnkStruct_ov84_02240FA8 *)¶m0->unk_194, 0, param0->unk_96, param0->unk_00->unk_34); + param0->unk_1B4 = ListMenu_New((const ListMenuTemplate *)¶m0->unk_194, 0, param0->unk_96, param0->unk_00->unk_34); ov104_02232B2C(param0); param0->unk_04 = SysTask_Start(ov104_0223296C, param0, 0); } @@ -529,15 +524,15 @@ static void ov104_02232750(UnkStruct_ov104_02232B5C *param0, u32 param1, u32 par MessageLoader_GetStrbuf(param0->unk_8C, param1, v2); StringTemplate_Format(param0->unk_90, param0->unk_1C[param0->unk_9B], v2); - param0->unk_1BC[param0->unk_9B].unk_00 = (const void *)param0->unk_1C[param0->unk_9B]; + param0->unk_1BC[param0->unk_9B].entry = (const void *)param0->unk_1C[param0->unk_9B]; Strbuf_Free(v2); } if (param3 == 0xfa) { - param0->unk_1BC[param0->unk_9B].unk_04 = 0xfffffffd; + param0->unk_1BC[param0->unk_9B].index = 0xfffffffd; } else { - param0->unk_1BC[param0->unk_9B].unk_04 = param3; + param0->unk_1BC[param0->unk_9B].index = param3; } param0->unk_29C[param0->unk_9B] = param2; @@ -555,11 +550,11 @@ static u32 ov104_022327F0(UnkStruct_ov104_02232B5C *param0) v2 = 0; for (v0 = 0; v0 < param0->unk_9B; v0++) { - if (param0->unk_1BC[v0].unk_00 == NULL) { + if (param0->unk_1BC[v0].entry == NULL) { break; } - v1 = Font_CalcStrbufWidth(FONT_SYSTEM, (Strbuf *)param0->unk_1BC[v0].unk_00, 0); + v1 = Font_CalcStrbufWidth(FONT_SYSTEM, (Strbuf *)param0->unk_1BC[v0].entry, 0); if (v2 < v1) { v2 = v1; @@ -571,50 +566,50 @@ static u32 ov104_022327F0(UnkStruct_ov104_02232B5C *param0) static void ov104_02232830(UnkStruct_ov104_02232B5C *param0) { - param0->unk_194.unk_00 = param0->unk_1BC; - param0->unk_194.unk_04 = ov104_02232960; - param0->unk_194.unk_08 = ov104_0223293C; - param0->unk_194.unk_0C = ¶m0->unk_08; + param0->unk_194.choices = param0->unk_1BC; + param0->unk_194.cursorCallback = ov104_02232960; + param0->unk_194.printCallback = ov104_0223293C; + param0->unk_194.window = ¶m0->unk_08; - param0->unk_194.unk_10 = param0->unk_9B; - param0->unk_194.unk_12 = 8; + param0->unk_194.count = param0->unk_9B; + param0->unk_194.maxDisplay = 8; - param0->unk_194.unk_14 = 1; - param0->unk_194.unk_15 = 12; - param0->unk_194.unk_16 = 2; - param0->unk_194.unk_17_0 = 1; + param0->unk_194.headerXOffset = 1; + param0->unk_194.textXOffset = 12; + param0->unk_194.cursorXOffset = 2; + param0->unk_194.yOffset = 1; - param0->unk_194.unk_17_4 = 1; - param0->unk_194.unk_18_0 = 15; - param0->unk_194.unk_18_4 = 2; + param0->unk_194.textColorFg = 1; + param0->unk_194.textColorBg = 15; + param0->unk_194.textColorShadow = 2; - param0->unk_194.unk_1A_0 = 0; - param0->unk_194.unk_1A_3 = 16; + param0->unk_194.letterSpacing = 0; + param0->unk_194.lineSpacing = 0; - param0->unk_194.unk_1A_7 = 0; + param0->unk_194.pagerMode = PAGER_MODE_NONE; - param0->unk_194.unk_1A_9 = 0; - param0->unk_194.unk_1A_15 = 0; + param0->unk_194.fontID = FONT_SYSTEM; + param0->unk_194.cursorType = 0; - param0->unk_194.unk_1C = (void *)param0; + param0->unk_194.tmp = (void *)param0; return; } -static void ov104_0223293C(BmpList *param0, u32 param1, u8 param2) +static void ov104_0223293C(ListMenu *param0, u32 param1, u8 param2) { if (param1 == 0xfffffffd) { - sub_0200147C(param0, 3, 15, 4); + ListMenu_SetAltTextColors(param0, 3, 15, 4); } else { - sub_0200147C(param0, 1, 15, 2); + ListMenu_SetAltTextColors(param0, 1, 15, 2); } } -static void ov104_02232960(BmpList *param0, u32 param1, u8 param2) +static void ov104_02232960(ListMenu *param0, u32 param1, u8 param2) { u32 v0, v1; u16 v2 = 0; u16 v3 = 0; - UnkStruct_ov104_02232B5C *v4 = (UnkStruct_ov104_02232B5C *)sub_02001504(param0, 19); + UnkStruct_ov104_02232B5C *v4 = (UnkStruct_ov104_02232B5C *)ListMenu_GetAttribute(param0, 19); return; } @@ -632,14 +627,14 @@ static void ov104_0223296C(SysTask *param0, void *param1) return; } - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { return; } - v1 = sub_02001288(v2->unk_1B4); + v1 = ListMenu_ProcessInput(v2->unk_1B4); v0 = v2->unk_2D4; - sub_020014D0(v2->unk_1B4, &v2->unk_2D4); + ListMenu_CalcTrueCursorPos(v2->unk_1B4, &v2->unk_2D4); if (v0 != v2->unk_2D4) { Sound_PlayEffect(1500); @@ -684,8 +679,8 @@ static void ov104_02232A58(UnkStruct_ov104_02232B5C *param0, u8 param1) Sound_PlayEffect(1500); } - sub_02001384(param0->unk_1B4, NULL, NULL); - Window_Clear(param0->unk_194.unk_0C, 0); + ListMenu_Free(param0->unk_1B4, NULL, NULL); + Window_EraseStandardFrame(param0->unk_194.window, 0); Window_Remove(¶m0->unk_08); for (v0 = 0; v0 < 28; v0++) { @@ -721,7 +716,7 @@ static void ov104_02232AC4(UnkStruct_ov104_02232B5C *param0, u16 param1, u32 par static void ov104_02232B2C(UnkStruct_ov104_02232B5C *param0) { - sub_020014D0(param0->unk_1B4, ¶m0->unk_1BA); + ListMenu_CalcTrueCursorPos(param0->unk_1B4, ¶m0->unk_1BA); if (param0->unk_29C[param0->unk_1BA] != 0xff) { ov104_02232AC4(param0, param0->unk_29C[param0->unk_1BA], TEXT_SPEED_INSTANT); diff --git a/src/overlay104/ov104_02234838.c b/src/overlay104/ov104_02234838.c index 990c466cb7..71d9482ff9 100644 --- a/src/overlay104/ov104_02234838.c +++ b/src/overlay104/ov104_02234838.c @@ -256,7 +256,7 @@ BOOL ov104_02234A1C(UnkStruct_ov104_0222E930 *param0) for (v7 = 0; v7 < v5; v7++) { v1 = Party_GetPokemonBySlotIndex(v2, v3->unk_260[v7]); - Pokemon_SetValue(v1, 6, &v3->unk_728[v7]); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v3->unk_728[v7]); } break; case 28: diff --git a/src/overlay104/ov104_022358E8.c b/src/overlay104/ov104_022358E8.c index e4d3574e16..090af3bc65 100644 --- a/src/overlay104/ov104_022358E8.c +++ b/src/overlay104/ov104_022358E8.c @@ -348,7 +348,7 @@ BOOL ov104_02235BC0(UnkStruct_ov104_0222E930 *param0) for (v8 = 0; v8 < 3; v8++) { v1 = Party_GetPokemonBySlotIndex(v2, v3->unk_24[v8]); - Pokemon_SetValue(v1, 6, &v3->unk_36A[v8]); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v3->unk_36A[v8]); } break; case 19: diff --git a/src/overlay104/ov104_022361B4.c b/src/overlay104/ov104_022361B4.c index 1a7b0f1b7f..348ea74880 100644 --- a/src/overlay104/ov104_022361B4.c +++ b/src/overlay104/ov104_022361B4.c @@ -31,13 +31,13 @@ #include "message.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200DA60.h" #include "unk_020302D0.h" #include "unk_0203061C.h" #include "unk_0205DFC4.h" @@ -146,11 +146,11 @@ UnkStruct_ov104_0223BA10 *ov104_022361B4(SaveData *param0, u16 param1, u8 param2 v3 = Party_GetPokemonBySlotIndex(v9->unk_28, v7); v0 = 0; - Pokemon_SetValue(v3, 6, &v0); + Pokemon_SetValue(v3, MON_DATA_HELD_ITEM, &v0); if (Pokemon_GetValue(v3, MON_DATA_LEVEL, NULL) > 50) { v1 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL), 50); - Pokemon_SetValue(v3, 8, &v1); + Pokemon_SetValue(v3, MON_DATA_EXP, &v1); Pokemon_CalcLevelAndStats(v3); } } @@ -260,25 +260,25 @@ static void ov104_022366A4(UnkStruct_ov104_0223BA10 *param0) v5 = Party_GetPokemonBySlotIndex(param0->unk_28, v4); v2 = (u16)sub_02030398(param0->unk_08, 2, v4, 0, NULL); - Pokemon_SetValue(v5, 163, &v2); + Pokemon_SetValue(v5, MON_DATA_CURRENT_HP, &v2); v3 = (u8)sub_02030398(param0->unk_08, 3, v4, 0, NULL); - Pokemon_SetValue(v5, 58, &v3); + Pokemon_SetValue(v5, MON_DATA_MOVE1_CUR_PP, &v3); v3 = (u8)sub_02030398(param0->unk_08, 3, v4, 1, NULL); - Pokemon_SetValue(v5, 59, &v3); + Pokemon_SetValue(v5, MON_DATA_MOVE2_CUR_PP, &v3); v3 = (u8)sub_02030398(param0->unk_08, 3, v4, 2, NULL); - Pokemon_SetValue(v5, 60, &v3); + Pokemon_SetValue(v5, MON_DATA_MOVE3_CUR_PP, &v3); v3 = (u8)sub_02030398(param0->unk_08, 3, v4, 3, NULL); - Pokemon_SetValue(v5, 61, &v3); + Pokemon_SetValue(v5, MON_DATA_MOVE4_CUR_PP, &v3); v1 = (u32)sub_02030398(param0->unk_08, 4, v4, 0, NULL); - Pokemon_SetValue(v5, 160, &v1); + Pokemon_SetValue(v5, MON_DATA_STATUS_CONDITION, &v1); v2 = (u16)sub_02030398(param0->unk_08, 5, v4, 0, NULL); - Pokemon_SetValue(v5, 6, &v2); + Pokemon_SetValue(v5, MON_DATA_HELD_ITEM, &v2); } return; @@ -729,7 +729,7 @@ void ov104_02236FC0(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_0223BA10 * static void ov104_022370C0(BgConfig *param0, Window *param1) { - Window_Show(param1, 1, ((1024 - (18 + 12)) - 9), 12); + Window_DrawStandardFrame(param1, 1, ((1024 - (18 + 12)) - 9), 12); Window_FillTilemap(param1, 15); return; @@ -743,7 +743,7 @@ void ov104_022370E0(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_0223BA10 * if (ov104_0223BA14(param1->unk_10) == 0) { GF_ASSERT(param0->unk_A8 != NULL); v0 = param0->unk_A8; - Window_Clear(v0, 0); + Window_EraseStandardFrame(v0, 0); Windows_Delete(v0, 1); } else { GF_ASSERT(param0->unk_A8 != NULL); @@ -757,9 +757,9 @@ void ov104_022370E0(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_0223BA10 * v1 = param0->unk_A8; } - Window_Clear(v0, 0); + Window_EraseStandardFrame(v0, 0); Windows_Delete(v0, 1); - Window_Clear(v1, 0); + Window_EraseStandardFrame(v1, 0); Windows_Delete(v1, 1); } diff --git a/src/overlay104/ov104_02237378.c b/src/overlay104/ov104_02237378.c index 9272aaa5e0..d947463597 100644 --- a/src/overlay104/ov104_02237378.c +++ b/src/overlay104/ov104_02237378.c @@ -186,7 +186,7 @@ BOOL ov104_02237460(UnkStruct_ov104_0222E930 *param0) v7 -= 3; v6 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v11, MON_DATA_SPECIES, NULL), v7); - Pokemon_SetValue(v11, 8, &v6); + Pokemon_SetValue(v11, MON_DATA_EXP, &v6); Pokemon_CalcLevelAndStats(v11); } } @@ -197,23 +197,23 @@ BOOL ov104_02237460(UnkStruct_ov104_0222E930 *param0) v11 = Party_GetPokemonBySlotIndex(v9->unk_70, v1); v5 = v9->unk_94[v1]; - Pokemon_SetValue(v11, 164, &v5); - Pokemon_SetValue(v11, 163, &v5); + Pokemon_SetValue(v11, MON_DATA_MAX_HP, &v5); + Pokemon_SetValue(v11, MON_DATA_CURRENT_HP, &v5); v5 = v9->unk_A4[v1]; - Pokemon_SetValue(v11, 165, &v5); + Pokemon_SetValue(v11, MON_DATA_ATK, &v5); v5 = v9->unk_B4[v1]; - Pokemon_SetValue(v11, 166, &v5); + Pokemon_SetValue(v11, MON_DATA_DEF, &v5); v5 = v9->unk_C4[v1]; - Pokemon_SetValue(v11, 167, &v5); + Pokemon_SetValue(v11, MON_DATA_SPEED, &v5); v5 = v9->unk_D4[v1]; - Pokemon_SetValue(v11, 168, &v5); + Pokemon_SetValue(v11, MON_DATA_SP_ATK, &v5); v5 = v9->unk_E4[v1]; - Pokemon_SetValue(v11, 169, &v5); + Pokemon_SetValue(v11, MON_DATA_SP_DEF, &v5); } sub_020520A4(v10); @@ -374,7 +374,7 @@ BOOL ov104_02237748(UnkStruct_ov104_0222E930 *param0) for (v11 = 0; v11 < 3; v11++) { v1 = Party_GetPokemonBySlotIndex(v2, v3->unk_2C[v11]); - Pokemon_SetValue(v1, 6, &v3->unk_412[v11]); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v3->unk_412[v11]); } break; case 19: diff --git a/src/overlay104/ov104_02237DD8.c b/src/overlay104/ov104_02237DD8.c index cdadc338b2..ba7735fbf1 100644 --- a/src/overlay104/ov104_02237DD8.c +++ b/src/overlay104/ov104_02237DD8.c @@ -3,6 +3,9 @@ #include #include +#include "constants/battle/condition.h" +#include "consts/items.h" + #include "struct_decls/struct_020304A0_decl.h" #include "struct_decls/struct_020305B8_decl.h" #include "struct_decls/struct_party_decl.h" @@ -217,11 +220,11 @@ UnkStruct_ov104_0223BFFC *ov104_02237DD8(SaveData *param0, u16 param1, u8 param2 v3 = Party_GetPokemonBySlotIndex(v9->unk_70, v7); v0 = 0; - Pokemon_SetValue(v3, 6, &v0); + Pokemon_SetValue(v3, MON_DATA_HELD_ITEM, &v0); if (Pokemon_GetValue(v3, MON_DATA_LEVEL, NULL) > 50) { v1 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL), 50); - Pokemon_SetValue(v3, 8, &v1); + Pokemon_SetValue(v3, MON_DATA_EXP, &v1); Pokemon_CalcLevelAndStats(v3); } } @@ -327,7 +330,7 @@ static void ov104_022381C4(UnkStruct_ov104_0223BFFC *param0) v3 = Party_GetPokemonBySlotIndex(param0->unk_70, v2); v1 = (u16)sub_0203054C(param0->unk_08, 4, v2, 0, NULL); - Pokemon_SetValue(v3, 6, &v1); + Pokemon_SetValue(v3, MON_DATA_HELD_ITEM, &v1); } return; @@ -945,47 +948,47 @@ BOOL ov104_02238B40(UnkStruct_ov104_0223BFFC *param0, u16 param1, u16 param2) } static const u16 Unk_ov104_0223FB4C[] = { - 0xDD, - 0xD9, - 0xD5, - 0x115, - 0x128, - 0xE6, - 0x113, - 0xEA, - 0x116, - 0x117, - 0x119 + ITEM_KINGS_ROCK, + ITEM_QUICK_CLAW, + ITEM_BRIGHTPOWDER, + ITEM_METRONOME, + ITEM_BIG_ROOT, + ITEM_FOCUS_BAND, + ITEM_FOCUS_SASH, + ITEM_LEFTOVERS, + ITEM_IRON_BALL, + ITEM_LAGGING_TAIL, + ITEM_BLACK_SLUDGE }; static const u16 Unk_ov104_0223FB78[] = { - 0xD6, - 0x10F, - 0x10A, - 0x10B, - 0xFD, - 0xE8, - 0x109, - 0x114, - 0x10C, - 0x10E, - 0x116, - 0x117, - 0x119 + ITEM_WHITE_HERB, + ITEM_POWER_HERB, + ITEM_MUSCLE_BAND, + ITEM_WISE_GLASSES, + ITEM_SHELL_BELL, + ITEM_SCOPE_LENS, + ITEM_WIDE_LENS, + ITEM_ZOOM_LENS, + ITEM_EXPERT_BELT, + ITEM_LIFE_ORB, + ITEM_IRON_BALL, + ITEM_LAGGING_TAIL, + ITEM_BLACK_SLUDGE }; static const u16 Unk_ov104_0223FB62[] = { - 0xE6, - 0x113, - 0xEA, - 0xE8, - 0x109, - 0x114, - 0x10C, - 0x10E, - 0xDC, - 0x129, - 0x11F + ITEM_FOCUS_BAND, + ITEM_FOCUS_SASH, + ITEM_LEFTOVERS, + ITEM_SCOPE_LENS, + ITEM_WIDE_LENS, + ITEM_ZOOM_LENS, + ITEM_EXPERT_BELT, + ITEM_LIFE_ORB, + ITEM_CHOICE_BAND, + ITEM_CHOICE_SPECS, + ITEM_CHOICE_SCARF }; static const u16 *Unk_ov104_02241A2C[] = { @@ -995,50 +998,50 @@ static const u16 *Unk_ov104_02241A2C[] = { }; static const u16 Unk_ov104_0223FB08[] = { - 0x95, - 0x96, - 0x97, - 0x98, - 0x99, - 0x9C, - 0x9E, - 0x9D + ITEM_CHERI_BERRY, + ITEM_CHESTO_BERRY, + ITEM_PECHA_BERRY, + ITEM_RAWST_BERRY, + ITEM_ASPEAR_BERRY, + ITEM_PERSIM_BERRY, + ITEM_SITRUS_BERRY, + ITEM_LUM_BERRY }; static const u16 Unk_ov104_0223FB92[] = { - 0xB8, - 0xB9, - 0xBA, - 0xBB, - 0xBC, - 0xBD, - 0xBE, - 0xBF, - 0xC0, - 0xC1, - 0xC2, - 0xC3, - 0xC4, - 0xC5, - 0xC6, - 0xC7, - 0xC8, - 0x9C, - 0x9E, - 0x9D + ITEM_OCCA_BERRY, + ITEM_PASSHO_BERRY, + ITEM_WACAN_BERRY, + ITEM_RINDO_BERRY, + ITEM_YACHE_BERRY, + ITEM_CHOPLE_BERRY, + ITEM_KEBIA_BERRY, + ITEM_SHUCA_BERRY, + ITEM_COBA_BERRY, + ITEM_PAYAPA_BERRY, + ITEM_TANGA_BERRY, + ITEM_CHARTI_BERRY, + ITEM_KASIB_BERRY, + ITEM_HABAN_BERRY, + ITEM_COLBUR_BERRY, + ITEM_BABIRI_BERRY, + ITEM_CHILAN_BERRY, + ITEM_PERSIM_BERRY, + ITEM_SITRUS_BERRY, + ITEM_LUM_BERRY }; static const u16 Unk_ov104_0223FB38[] = { - 0x9C, - 0x9E, - 0x9D, - 0xC9, - 0xCA, - 0xCB, - 0xCC, - 0xCD, - 0xCE, - 0xCF + ITEM_PERSIM_BERRY, + ITEM_SITRUS_BERRY, + ITEM_LUM_BERRY, + ITEM_LIECHI_BERRY, + ITEM_GANLON_BERRY, + ITEM_SALAC_BERRY, + ITEM_PETAYA_BERRY, + ITEM_APICOT_BERRY, + ITEM_LANSAT_BERRY, + ITEM_STARF_BERRY }; static const u16 *Unk_ov104_02241A20[] = { @@ -1115,7 +1118,7 @@ static void ov104_02238BBC(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v2 -= v1; v2 = (v1 - v2); - Pokemon_SetValue(v3, 163, &v2); + Pokemon_SetValue(v3, MON_DATA_CURRENT_HP, &v2); } return; @@ -1135,11 +1138,11 @@ static void ov104_02238C18(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v4 = Pokemon_GetValue(v6, MON_DATA_TYPE_2, NULL); v5 = Pokemon_GetValue(v6, MON_DATA_ABILITY, NULL); - if ((v3 == 3) || (v4 == 3) || (v3 == 8) || (v4 == 8) || (v5 == 17)) { + if ((v3 == TYPE_POISON) || (v4 == TYPE_POISON) || (v3 == TYPE_STEEL) || (v4 == TYPE_STEEL) || (v5 == ABILITY_IMMUNITY)) { v1++; } else { - v2 = 0x8; - Pokemon_SetValue(v6, 160, &v2); + v2 = MON_CONDITION_POISON; + Pokemon_SetValue(v6, MON_DATA_STATUS_CONDITION, &v2); } } @@ -1164,11 +1167,11 @@ static void ov104_02238C9C(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v4 = Pokemon_GetValue(v6, MON_DATA_TYPE_2, NULL); v5 = Pokemon_GetValue(v6, MON_DATA_ABILITY, NULL); - if ((v3 == 4) || (v4 == 4) || (v5 == 7)) { + if ((v3 == TYPE_GROUND) || (v4 == TYPE_GROUND) || (v5 == ABILITY_LIMBER)) { v1++; } else { - v2 = 0x40; - Pokemon_SetValue(v6, 160, &v2); + v2 = MON_CONDITION_PARALYSIS; + Pokemon_SetValue(v6, MON_DATA_STATUS_CONDITION, &v2); } } @@ -1193,11 +1196,11 @@ static void ov104_02238D14(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v4 = Pokemon_GetValue(v6, MON_DATA_TYPE_2, NULL); v5 = Pokemon_GetValue(v6, MON_DATA_ABILITY, NULL); - if ((v3 == 10) || (v4 == 10) || (v5 == 41)) { + if ((v3 == TYPE_FIRE) || (v4 == TYPE_FIRE) || (v5 == ABILITY_WATER_VEIL)) { v1++; } else { - v2 = 0x10; - Pokemon_SetValue(v6, 160, &v2); + v2 = MON_CONDITION_BURN; + Pokemon_SetValue(v6, MON_DATA_STATUS_CONDITION, &v2); } } @@ -1222,7 +1225,7 @@ static void ov104_02238D8C(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v5 = Party_GetPokemonBySlotIndex(param1, v0); v4 = Pokemon_GetValue(v5, MON_DATA_ABILITY, NULL); - if ((v4 == 15) || (v4 == 72)) { + if ((v4 == ABILITY_INSOMNIA) || (v4 == ABILITY_VITAL_SPIRIT)) { v2++; v0++; @@ -1231,7 +1234,7 @@ static void ov104_02238D8C(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p } } else { v3 = (LCRNG_Next() % 4 + 2); - Pokemon_SetValue(v5, 160, &v3); + Pokemon_SetValue(v5, MON_DATA_STATUS_CONDITION, &v3); break; } } @@ -1259,7 +1262,7 @@ static void ov104_02238E08(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v5 = Pokemon_GetValue(v7, MON_DATA_TYPE_2, NULL); v6 = Pokemon_GetValue(v7, MON_DATA_ABILITY, NULL); - if ((v4 == 15) || (v5 == 15) || (v6 == 40)) { + if ((v4 == TYPE_ICE) || (v5 == TYPE_ICE) || (v6 == ABILITY_MAGMA_ARMOR)) { v2++; v0++; @@ -1267,8 +1270,8 @@ static void ov104_02238E08(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v0 = 0; } } else { - v3 = 0x20; - Pokemon_SetValue(v7, 160, &v3); + v3 = MON_CONDITION_FREEZE; + Pokemon_SetValue(v7, MON_DATA_STATUS_CONDITION, &v3); break; } @@ -1305,7 +1308,7 @@ static void ov104_02238E9C(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p for (v0 = 0; v0 < param2; v0++) { v5 = Party_GetPokemonBySlotIndex(param1, v0); - Pokemon_SetValue(v5, 6, &v3); + Pokemon_SetValue(v5, MON_DATA_HELD_ITEM, &v3); } return; @@ -1335,7 +1338,7 @@ static void ov104_02238EF8(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p for (v0 = 0; v0 < param2; v0++) { v5 = Party_GetPokemonBySlotIndex(param1, v0); - Pokemon_SetValue(v5, 6, &v3); + Pokemon_SetValue(v5, MON_DATA_HELD_ITEM, &v3); } return; @@ -1359,7 +1362,7 @@ static void ov104_02238F54(UnkStruct_ov104_0223BFFC *param0, Party *param1, u8 p v1 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL), v2); - Pokemon_SetValue(v3, 8, &v1); + Pokemon_SetValue(v3, MON_DATA_EXP, &v1); Pokemon_CalcLevelAndStats(v3); } @@ -1512,7 +1515,7 @@ void ov104_02239054(Party *param0, Party *param1, int param2, int param3) v0 = Pokemon_GetValue(v2, MON_DATA_HELD_ITEM, NULL); v1 = Party_GetPokemonBySlotIndex(param1, param3); - Pokemon_SetValue(v1, 6, &v0); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v0); return; } diff --git a/src/overlay104/ov104_02239080.c b/src/overlay104/ov104_02239080.c index 48b647fdae..198803f901 100644 --- a/src/overlay104/ov104_02239080.c +++ b/src/overlay104/ov104_02239080.c @@ -27,7 +27,7 @@ BOOL ov104_02239080(UnkStruct_ov104_0222E930 *param0) BOOL ov104_02239090(UnkStruct_ov104_0222E930 *param0) { - sub_020057A4(ov104_0222FC00(param0), 0); + Sound_StopEffect(ov104_0222FC00(param0), 0); return 0; } diff --git a/src/overlay104/ov104_0223A0C4.c b/src/overlay104/ov104_0223A0C4.c index b01ae4537a..2b21079d43 100644 --- a/src/overlay104/ov104_0223A0C4.c +++ b/src/overlay104/ov104_0223A0C4.c @@ -931,7 +931,7 @@ BattleParams *ov104_0223A580(UnkStruct_0204AFC4 *param0, UnkStruct_ov104_02230BE if (Pokemon_GetValue(v6, MON_DATA_LEVEL, NULL) > v1) { v2 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v6, MON_DATA_SPECIES, NULL), v1); - Pokemon_SetValue(v6, 8, &v2); + Pokemon_SetValue(v6, MON_DATA_EXP, &v2); Pokemon_CalcLevelAndStats(v6); } diff --git a/src/overlay104/ov104_0223B6F4.c b/src/overlay104/ov104_0223B6F4.c index 6e04deb5cf..b8bfb0d568 100644 --- a/src/overlay104/ov104_0223B6F4.c +++ b/src/overlay104/ov104_0223B6F4.c @@ -294,11 +294,11 @@ void ov104_0223BA24(Party *param0) if (Pokemon_GetValue(mon, MON_DATA_CURRENT_HP, NULL) == 0) { v3 = 1; - Pokemon_SetValue(mon, 163, &v3); + Pokemon_SetValue(mon, MON_DATA_CURRENT_HP, &v3); } v3 = 0; - Pokemon_SetValue(mon, 160, &v3); + Pokemon_SetValue(mon, MON_DATA_STATUS_CONDITION, &v3); } return; diff --git a/src/overlay104/ov104_0223BCBC.c b/src/overlay104/ov104_0223BCBC.c index 73d7601cba..5691455239 100644 --- a/src/overlay104/ov104_0223BCBC.c +++ b/src/overlay104/ov104_0223BCBC.c @@ -327,7 +327,7 @@ void ov104_0223C04C(UnkStruct_ov104_0223BFFC *param0) v6 = Party_GetPokemonBySlotIndex(param0->unk_74, v1); v0 = 0; - Pokemon_SetValue(v6, 6, &v0); + Pokemon_SetValue(v6, MON_DATA_HELD_ITEM, &v0); } Heap_FreeToHeap(v5); diff --git a/src/overlay104/ov104_0223C2D4.c b/src/overlay104/ov104_0223C2D4.c index 24024d5d87..59838aa643 100644 --- a/src/overlay104/ov104_0223C2D4.c +++ b/src/overlay104/ov104_0223C2D4.c @@ -45,6 +45,7 @@ #include "narc.h" #include "palette.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "sys_task.h" #include "sys_task_manager.h" @@ -52,7 +53,6 @@ #include "unk_020041CC.h" #include "unk_020093B4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0201E3D8.h" @@ -163,7 +163,7 @@ UnkStruct_ov104_0223C4CC *ov104_0223C2D4(UnkStruct_0209B75C *param0) v0->unk_00 = BgConfig_New(94); - sub_0201DBEC(64, 94); + VRAMTransferManager_New(64, 94); SetAutorepeat(4, 8); ov104_0223C948(v0->unk_00, v2); @@ -223,7 +223,7 @@ void ov104_0223C4CC(UnkStruct_ov104_0223C4CC *param0) ov104_0223D058(param0); ov104_0223D5F0(param0->unk_10); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); PaletteData_FreeBuffer(param0->unk_04, 0); PaletteData_FreeBuffer(param0->unk_04, 1); @@ -324,7 +324,7 @@ static void ov104_0223C6EC(void *param0) UnkStruct_ov104_0223C4CC *v0 = param0; sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_04); Bg_RunScheduledUpdates(v0->unk_00); @@ -621,11 +621,11 @@ static void ov104_0223CB80(UnkStruct_ov104_0223C4CC *param0) v0 = sub_0209B970(param0->unk_08); - sub_0200DD0C(param0->unk_00, 1, (1024 - (18 + 12)), 11, Options_Frame(v0->unk_04), 94); + LoadMessageBoxGraphics(param0->unk_00, 1, (1024 - (18 + 12)), 11, Options_Frame(v0->unk_04), 94); PaletteData_LoadBufferFromHardware(param0->unk_04, 0, 11 * 16, 0x20); } - sub_0200DAA4(param0->unk_00, 1, ((1024 - (18 + 12)) - 9), 12, 0, 94); + LoadStandardWindowGraphics(param0->unk_00, 1, ((1024 - (18 + 12)) - 9), 12, 0, 94); PaletteData_LoadBufferFromHardware(param0->unk_04, 0, 12 * 16, 0x20); } diff --git a/src/overlay104/ov104_0223DC7C.c b/src/overlay104/ov104_0223DC7C.c index 622b305eec..63252dfb8b 100644 --- a/src/overlay104/ov104_0223DC7C.c +++ b/src/overlay104/ov104_0223DC7C.c @@ -301,20 +301,20 @@ static BOOL ov104_0223DDE4(UnkStruct_ov104_0223DD30 *param0, u32 param1, const U param0->unk_00++; break; case 1: - sub_0200F174(0, 0, 0, 0x7fff, 3, 1, param1); + StartScreenTransition(0, 0, 0, 0x7fff, 3, 1, param1); param0->unk_00++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00++; } break; case 3: - sub_0200F174(3, 1, 1, 0x7fff, 3, 1, param1); + StartScreenTransition(3, 1, 1, 0x7fff, 3, 1, param1); param0->unk_00++; break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00++; } break; @@ -362,11 +362,11 @@ static BOOL ov104_0223DDE4(UnkStruct_ov104_0223DD30 *param0, u32 param1, const U break; } - sub_0200F174(3, 0, 0, 0x7fff, 3, 1, param1); + StartScreenTransition(3, 0, 0, 0x7fff, 3, 1, param1); param0->unk_00++; break; case 12: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { PaletteData_BlendMulti(param0->unk_1C, 2, param0->unk_164 ^ 0x3fff, 14, 0x0); PaletteData_Blend(param0->unk_1C, 2, param0->unk_160 * 16, 16, 0, (GX_RGB(0, 0, 0))); sub_0200AB4C(-14, GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD, 1); @@ -375,11 +375,11 @@ static BOOL ov104_0223DDE4(UnkStruct_ov104_0223DD30 *param0, u32 param1, const U } break; case 13: - sub_0200F174(3, 1, 1, 0x7fff, 3, 1, param1); + StartScreenTransition(3, 1, 1, 0x7fff, 3, 1, param1); param0->unk_00++; break; case 14: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_78 = 26; param0->unk_00++; } @@ -392,11 +392,11 @@ static BOOL ov104_0223DDE4(UnkStruct_ov104_0223DD30 *param0, u32 param1, const U } break; case 16: - sub_0200F174(3, 0, 0, 0x7fff, 15, 1, 94); + StartScreenTransition(3, 0, 0, 0x7fff, 15, 1, 94); param0->unk_00++; break; case 17: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00++; } break; diff --git a/src/overlay105/ov105_02241AE0.c b/src/overlay105/ov105_02241AE0.c index 74e1ff51d3..41083e274a 100644 --- a/src/overlay105/ov105_02241AE0.c +++ b/src/overlay105/ov105_02241AE0.c @@ -4,14 +4,10 @@ #include #include "struct_decls/sprite_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02007768_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_party_decl.h" #include "struct_defs/pokemon_summary.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0207C690.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02099F80.h" #include "overlay104/ov104_0222DCE0.h" @@ -40,6 +36,7 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" @@ -47,18 +44,18 @@ #include "party.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200762C.h" #include "unk_020093B4.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -104,9 +101,9 @@ struct UnkStruct_ov105_02241FF4_t { u16 unk_3C[8]; BgConfig *unk_4C; Window unk_50[10]; - UnkStruct_02081CF4 unk_F0; - UIControlData *unk_FC; - ResourceMetadata unk_100[4]; + MenuTemplate unk_F0; + Menu *unk_FC; + StringList unk_100[4]; PaletteData *unk_120; GenericPointerData *unk_124; UnkStruct_02007768 *unk_128; @@ -645,11 +642,11 @@ static BOOL ov105_02241FF4(UnkStruct_ov105_02241FF4 *param0) Bg_SetOffset(param0->unk_4C, 2, 0, (33 * 8)); sub_02007DEC(param0->unk_12C[0], 6, 1); - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 93); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 93); param0->unk_08++; break; case 3: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } @@ -659,7 +656,7 @@ static BOOL ov105_02241FF4(UnkStruct_ov105_02241FF4 *param0) break; case 4: if (ov105_02244780(param0) == 1) { - sub_020057A4(1554, 0); + Sound_StopEffect(1554, 0); Sound_PlayEffect(1657); for (v0 = 0; v0 < param0->unk_12; v0++) { @@ -728,14 +725,14 @@ static BOOL ov105_022421F0(UnkStruct_ov105_02241FF4 *param0) } if (param0->unk_13_4 == 1) { - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 93); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 93); } param0->unk_13_4 = 1; param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -925,25 +922,25 @@ static BOOL ov105_022426E0(UnkStruct_ov105_02241FF4 *param0) } break; case 2: - v1 = sub_02001BE0(param0->unk_FC); + v1 = Menu_ProcessInput(param0->unk_FC); ov105_02246080(param0->unk_310); switch (v1) { case 0xffffffff: break; case 0: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; param0->unk_13_6 = 1; - sub_0200F174(0, 0, 0, 0x0, 6, 1, 93); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 93); param0->unk_08++; break; case 1: - sub_02001BC4(param0->unk_FC, NULL); + Menu_Free(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + ov105_02245A98(param0->unk_F0.window); ov105_02242A58(param0); if (ov104_0223AED4(param0->unk_09) == 1) { @@ -952,9 +949,9 @@ static BOOL ov105_022426E0(UnkStruct_ov105_02241FF4 *param0) return 1; case 3: - sub_02001BC4(param0->unk_FC, NULL); + Menu_Free(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + ov105_02245A98(param0->unk_F0.window); ov105_02242B54(param0); if (ov104_0223AED4(param0->unk_09) == 1) { @@ -965,8 +962,8 @@ static BOOL ov105_022426E0(UnkStruct_ov105_02241FF4 *param0) case 0xfffffffe: case 2: default: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_022461A4(param0->unk_30C, 0); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; @@ -974,7 +971,7 @@ static BOOL ov105_022426E0(UnkStruct_ov105_02241FF4 *param0) } break; case 3: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov105_02245464(param0); ov105_022451B4(param0); param0->unk_04 = OverlayManager_New(&Unk_020F410C, param0->unk_140, 93); @@ -988,7 +985,7 @@ static BOOL ov105_022426E0(UnkStruct_ov105_02241FF4 *param0) } break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08 = 2; } break; @@ -1220,15 +1217,15 @@ static BOOL ov105_02242D04(UnkStruct_ov105_02241FF4 *param0) param0->unk_08++; break; case 5: - v1 = sub_02001BE0(param0->unk_FC); + v1 = Menu_ProcessInput(param0->unk_FC); ov105_02246080(param0->unk_310); switch (v1) { case 0xffffffff: break; case 0: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; param0->unk_08++; @@ -1237,9 +1234,9 @@ static BOOL ov105_02242D04(UnkStruct_ov105_02241FF4 *param0) case 1: default: ov105_02246074(param0->unk_30C, 1); - sub_02001BC4(param0->unk_FC, NULL); + Menu_Free(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; @@ -1455,31 +1452,31 @@ static BOOL ov105_022434BC(UnkStruct_ov105_02241FF4 *param0) } break; case 2: - v1 = sub_02001BE0(param0->unk_FC); + v1 = Menu_ProcessInput(param0->unk_FC); ov105_02246080(param0->unk_310); switch (v1) { case 0xffffffff: break; case 0: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; param0->unk_13_6 = 1; - sub_0200F174(0, 0, 0, 0x0, 6, 1, 93); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 93); param0->unk_08++; break; case 4: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02243738(param0); return 1; case 0xfffffffe: case 2: default: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_022461A4(param0->unk_30C, 0); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; @@ -1491,7 +1488,7 @@ static BOOL ov105_022434BC(UnkStruct_ov105_02241FF4 *param0) } break; case 3: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov105_02245464(param0); ov105_022451B4(param0); param0->unk_04 = OverlayManager_New(&Unk_020F410C, param0->unk_140, 93); @@ -1505,7 +1502,7 @@ static BOOL ov105_022434BC(UnkStruct_ov105_02241FF4 *param0) } break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_08 = 2; } break; @@ -1558,15 +1555,15 @@ static BOOL ov105_02243818(UnkStruct_ov105_02241FF4 *param0) param0->unk_08++; break; case 1: - v2 = sub_02001BE0(param0->unk_FC); + v2 = Menu_ProcessInput(param0->unk_FC); ov105_02246080(param0->unk_310); switch (v2) { case 0xffffffff: break; case 0: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; param0->unk_13_3 = 0; @@ -1580,8 +1577,8 @@ static BOOL ov105_02243818(UnkStruct_ov105_02241FF4 *param0) case 0xfffffffe: case 1: default: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; ov105_0224396C(param0); @@ -1680,7 +1677,7 @@ static BOOL ov105_02243A3C(UnkStruct_ov105_02241FF4 *param0) } break; case 2: - v2 = sub_02001BE0(param0->unk_FC); + v2 = Menu_ProcessInput(param0->unk_FC); ov105_02246080(param0->unk_310); switch (v2) { @@ -1688,8 +1685,8 @@ static BOOL ov105_02243A3C(UnkStruct_ov105_02241FF4 *param0) break; case 0: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02243D84(param0); if (ov104_0223AED4(param0->unk_09) == 1) { @@ -1701,8 +1698,8 @@ static BOOL ov105_02243A3C(UnkStruct_ov105_02241FF4 *param0) case 0xfffffffe: case 1: default: - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02243DE4(param0); param0->unk_08 = 1; break; @@ -1727,7 +1724,7 @@ static void ov105_02243D20(UnkStruct_ov105_02241FF4 *param0) sub_02007DC8(param0->unk_12C[0]); Window_FillTilemap(¶m0->unk_50[7], 15); - sub_0200E084(¶m0->unk_50[7], 1); + Window_EraseMessageBox(¶m0->unk_50[7], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[7]); param0->unk_11--; @@ -1787,16 +1784,16 @@ static BOOL ov105_02243E84(UnkStruct_ov105_02241FF4 *param0) break; case 1: - v2 = sub_02001BE0(param0->unk_FC); + v2 = Menu_ProcessInput(param0->unk_FC); ov105_02246080(param0->unk_310); switch (v2) { case 0xffffffff: break; case 0: - sub_02001BC4(param0->unk_FC, NULL); + Menu_Free(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; @@ -1811,7 +1808,7 @@ static BOOL ov105_02243E84(UnkStruct_ov105_02241FF4 *param0) case 0xfffffffe: case 1: default: - sub_02001BC4(param0->unk_FC, NULL); + Menu_Free(param0->unk_FC, NULL); ov105_02246060(param0->unk_30C); param0->unk_30C = NULL; @@ -1859,7 +1856,7 @@ static BOOL ov105_0224400C(UnkStruct_ov105_02241FF4 *param0) Window_FillTilemap(¶m0->unk_50[0], 0); Window_ScheduleCopyToVRAM(¶m0->unk_50[0]); - sub_0200E084(¶m0->unk_50[5], 1); + Window_EraseMessageBox(¶m0->unk_50[5], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[5]); ov105_02246244(param0->unk_50); @@ -1908,7 +1905,7 @@ static BOOL ov105_0224400C(UnkStruct_ov105_02241FF4 *param0) break; case 3: if (ov105_02244830(param0) == 1) { - sub_020057A4(1554, 0); + Sound_StopEffect(1554, 0); Sound_PlayEffect(1657); param0->unk_14 = (4 * 2); @@ -1940,7 +1937,7 @@ static BOOL ov105_0224400C(UnkStruct_ov105_02241FF4 *param0) break; case 4: if (ov105_02244780(param0) == 1) { - sub_020057A4(1554, 0); + Sound_StopEffect(1554, 0); Sound_PlayEffect(1657); for (v1 = 0; v1 < param0->unk_12; v1++) { @@ -2060,11 +2057,11 @@ static BOOL ov105_022443DC(UnkStruct_ov105_02241FF4 *param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 93); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 93); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -2083,8 +2080,8 @@ static BOOL ov105_02244424(UnkStruct_ov105_02241FF4 *param0) case 0: if (param0->unk_310 != NULL) { - sub_02001BC4(param0->unk_FC, NULL); - ov105_02245A98(param0->unk_F0.unk_04); + Menu_Free(param0->unk_FC, NULL); + ov105_02245A98(param0->unk_F0.window); ov105_02246060(param0->unk_310); param0->unk_310 = NULL; } @@ -2564,18 +2561,18 @@ static void ov105_02244D48(UnkStruct_ov105_02241FF4 *param0, Window *param1, u8 int v0; for (v0 = 0; v0 < 4; v0++) { - param0->unk_100[v0].unk_00 = NULL; - param0->unk_100[v0].unk_04 = 0; + param0->unk_100[v0].entry = NULL; + param0->unk_100[v0].index = 0; } - param0->unk_F0.unk_00 = param0->unk_100; - param0->unk_F0.unk_04 = param1; - param0->unk_F0.unk_08 = 0; - param0->unk_F0.unk_09 = 1; - param0->unk_F0.unk_0A = param2; - param0->unk_F0.unk_0B_0 = 0; - param0->unk_F0.unk_0B_4 = 1; - param0->unk_F0.unk_0B_6 = 1; + param0->unk_F0.choices = param0->unk_100; + param0->unk_F0.window = param1; + param0->unk_F0.fontID = FONT_SYSTEM; + param0->unk_F0.xSize = 1; + param0->unk_F0.ySize = param2; + param0->unk_F0.lineSpacing = 0; + param0->unk_F0.suppressCursor = TRUE; + param0->unk_F0.loopAround = TRUE; return; } @@ -2587,8 +2584,8 @@ static void ov105_02244DC4(UnkStruct_ov105_02241FF4 *param0, u8 param1, u8 param MessageLoader_GetStrbuf(param0->unk_1C, param3, param0->unk_2C[param1]); - param0->unk_100[param1].unk_00 = (const void *)param0->unk_2C[param1]; - param0->unk_100[param1].unk_04 = param2; + param0->unk_100[param1].entry = (const void *)param0->unk_2C[param1]; + param0->unk_100[param1].index = param2; return; } @@ -2610,7 +2607,7 @@ static void ov105_02244DF0(UnkStruct_ov105_02241FF4 *param0) } ov105_02244DC4(param0, 2, 2, 7); - param0->unk_FC = sub_02001B7C(¶m0->unk_F0, 0, 0, 0, 93, PAD_BUTTON_B); + param0->unk_FC = Menu_NewAndCopyToVRAM(¶m0->unk_F0, 0, 0, 0, 93, PAD_BUTTON_B); return; } @@ -2622,7 +2619,7 @@ static void ov105_02244E94(UnkStruct_ov105_02241FF4 *param0) ov105_02244DC4(param0, 0, 0, 3); ov105_02244DC4(param0, 1, 1, 4); - param0->unk_FC = sub_02001B7C(¶m0->unk_F0, 0, 0, 0, 93, PAD_BUTTON_B); + param0->unk_FC = Menu_NewAndCopyToVRAM(¶m0->unk_F0, 0, 0, 0, 93, PAD_BUTTON_B); return; } @@ -3333,7 +3330,7 @@ static void ov105_02245A64(UnkStruct_ov105_02241FF4 *param0) static void ov105_02245A98(Window *param0) { - Window_Clear(param0, 1); + Window_EraseStandardFrame(param0, 1); Window_ClearAndScheduleCopyToVRAM(param0); return; diff --git a/src/overlay105/ov105_02246214.c b/src/overlay105/ov105_02246214.c index 801f96e61a..d94f726b11 100644 --- a/src/overlay105/ov105_02246214.c +++ b/src/overlay105/ov105_02246214.c @@ -4,7 +4,7 @@ #include #include "bg_window.h" -#include "unk_0200DA60.h" +#include "render_window.h" void ov105_02246214(BgConfig *param0, Window *param1); void ov105_02246244(Window *param0); @@ -50,17 +50,17 @@ void ov105_02246244(Window *param0) void ov105_02246260(BgConfig *param0, Window *param1) { - sub_0200DAA4(param0, 1, (1024 - 9), 11, 0, 93); - Window_Show(param1, 1, (1024 - 9), 11); + LoadStandardWindowGraphics(param0, 1, (1024 - 9), 11, 0, 93); + Window_DrawStandardFrame(param1, 1, (1024 - 9), 11); return; } void ov105_0224628C(Window *param0, int param1) { - sub_0200DD0C(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 93); + LoadMessageBoxGraphics(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 93); Window_FillTilemap(param0, 15); - sub_0200E060(param0, 1, ((1024 - 9) - (18 + 12)), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 1, ((1024 - 9) - (18 + 12)), 10); return; } diff --git a/src/overlay106/ov106_02241AE0.c b/src/overlay106/ov106_02241AE0.c index 8960d33772..25d6e5f706 100644 --- a/src/overlay106/ov106_02241AE0.c +++ b/src/overlay106/ov106_02241AE0.c @@ -3,13 +3,9 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_party_decl.h" #include "struct_defs/pokemon_summary.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02099F80.h" #include "overlay104/ov104_0222DCE0.h" @@ -32,6 +28,7 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" @@ -39,18 +36,18 @@ #include "party.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A784.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" @@ -95,9 +92,9 @@ struct UnkStruct_ov106_02243118_t { u16 unk_38[8]; BgConfig *unk_48; Window unk_4C[4]; - UnkStruct_02081CF4 unk_8C; - UIControlData *unk_98; - ResourceMetadata unk_9C[2]; + MenuTemplate unk_8C; + Menu *unk_98; + StringList unk_9C[2]; PaletteData *unk_AC; UnkStruct_0200C440 *unk_B0; Options *unk_B4; @@ -350,11 +347,11 @@ static BOOL ov106_02241D28(UnkStruct_ov106_02243118 *param0) break; case 2: ov106_02241DD4(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 98); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 98); param0->unk_08++; break; case 3: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -414,7 +411,7 @@ static BOOL ov106_02241E5C(UnkStruct_ov106_02243118 *param0) if (gCoreSys.pressedKeys & PAD_BUTTON_A) { if (ov104_0223B5A4(param0->unk_0D) == 0xfe) { Sound_PlayEffect(1501); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 98); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 98); param0->unk_10 = 1; param0->unk_08 = 6; @@ -467,7 +464,7 @@ static BOOL ov106_02241E5C(UnkStruct_ov106_02243118 *param0) } break; case 3: - v1 = sub_02001BE0(param0->unk_98); + v1 = Menu_ProcessInput(param0->unk_98); switch (v1) { case 0xffffffff: @@ -479,7 +476,7 @@ static BOOL ov106_02241E5C(UnkStruct_ov106_02243118 *param0) param0->unk_1F = param0->unk_0D; param0->unk_08 = 4; } else { - sub_020057A4(1500, 0); + Sound_StopEffect(1500, 0); Sound_PlayEffect(1572); if (param0->unk_1F != 0x75) { @@ -516,7 +513,7 @@ static BOOL ov106_02241E5C(UnkStruct_ov106_02243118 *param0) } break; case 6: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { ov106_02242CA4(param0); ov106_022423E8(param0); param0->unk_04 = OverlayManager_New(&Unk_020F410C, param0->unk_BC, 98); @@ -613,13 +610,13 @@ static BOOL ov106_02242108(UnkStruct_ov106_02243118 *param0) param0->unk_08 = 5; break; case 5: - v1 = sub_02001BE0(param0->unk_98); + v1 = Menu_ProcessInput(param0->unk_98); switch (v1) { case 0xffffffff: break; case 0: - sub_020057A4(1500, 0); + Sound_StopEffect(1500, 0); Sound_PlayEffect(1572); ov106_02243200(param0); param0->unk_08 = 6; @@ -698,12 +695,12 @@ static BOOL ov106_02242344(UnkStruct_ov106_02243118 *param0) if (param0->unk_1B == 0) { ov106_022432D4(param0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 98); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 98); param0->unk_08++; } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -720,7 +717,7 @@ static BOOL ov106_022423AC(UnkStruct_ov106_02243118 *param0) case 0: ov106_02243200(param0); ov106_02243664(param0->unk_284, 1); - sub_0200E084(¶m0->unk_4C[0], 0); + Window_EraseMessageBox(¶m0->unk_4C[0], 0); param0->unk_08++; break; @@ -1079,18 +1076,18 @@ static void ov106_022429B0(UnkStruct_ov106_02243118 *param0, Window *param1, u8 int v0; for (v0 = 0; v0 < 2; v0++) { - param0->unk_9C[v0].unk_00 = NULL; - param0->unk_9C[v0].unk_04 = 0; + param0->unk_9C[v0].entry = NULL; + param0->unk_9C[v0].index = 0; } - param0->unk_8C.unk_00 = param0->unk_9C; - param0->unk_8C.unk_04 = param1; - param0->unk_8C.unk_08 = 0; - param0->unk_8C.unk_09 = 1; - param0->unk_8C.unk_0A = param2; - param0->unk_8C.unk_0B_0 = 0; - param0->unk_8C.unk_0B_4 = 0; - param0->unk_8C.unk_0B_6 = 1; + param0->unk_8C.choices = param0->unk_9C; + param0->unk_8C.window = param1; + param0->unk_8C.fontID = FONT_SYSTEM; + param0->unk_8C.xSize = 1; + param0->unk_8C.ySize = param2; + param0->unk_8C.lineSpacing = 0; + param0->unk_8C.suppressCursor = FALSE; + param0->unk_8C.loopAround = TRUE; return; } @@ -1102,8 +1099,8 @@ static void ov106_02242A28(UnkStruct_ov106_02243118 *param0, u8 param1, u8 param MessageLoader_GetStrbuf(param0->unk_20, param3, param0->unk_30[param1]); - param0->unk_9C[param1].unk_00 = (const void *)param0->unk_30[param1]; - param0->unk_9C[param1].unk_04 = param2; + param0->unk_9C[param1].entry = (const void *)param0->unk_30[param1]; + param0->unk_9C[param1].index = param2; return; } @@ -1117,7 +1114,7 @@ static void ov106_02242A54(UnkStruct_ov106_02243118 *param0) ov106_02242A28(param0, 0, 0, 27); ov106_02242A28(param0, 1, 1, 28); - param0->unk_98 = sub_02001B7C(¶m0->unk_8C, 8, 0, 0, 98, PAD_BUTTON_B); + param0->unk_98 = Menu_NewAndCopyToVRAM(¶m0->unk_8C, 8, 0, 0, 98, PAD_BUTTON_B); return; } @@ -1619,8 +1616,8 @@ static void ov106_02243200(UnkStruct_ov106_02243118 *param0) { if (param0->unk_0F == 1) { param0->unk_0F = 0; - sub_02001BC4(param0->unk_98, NULL); - Window_Clear(param0->unk_8C.unk_04, 0); + Menu_Free(param0->unk_98, NULL); + Window_EraseStandardFrame(param0->unk_8C.window, 0); } return; @@ -1672,7 +1669,7 @@ static void ov106_022432AC(UnkStruct_ov106_02243118 *param0) static void ov106_022432D4(UnkStruct_ov106_02243118 *param0) { ov106_02243664(param0->unk_284, 1); - sub_0200E084(¶m0->unk_4C[0], 0); + Window_EraseMessageBox(¶m0->unk_4C[0], 0); ov106_02242AC4(param0, ¶m0->unk_4C[2], 0, 0, 1, 2, 0, FONT_SYSTEM); return; diff --git a/src/overlay106/ov106_022436E0.c b/src/overlay106/ov106_022436E0.c index 9026a482eb..e8c6755755 100644 --- a/src/overlay106/ov106_022436E0.c +++ b/src/overlay106/ov106_022436E0.c @@ -4,7 +4,7 @@ #include #include "bg_window.h" -#include "unk_0200DA60.h" +#include "render_window.h" void ov106_022436E0(BgConfig *param0, Window *param1); void ov106_02243710(Window *param0); @@ -44,17 +44,17 @@ void ov106_02243710(Window *param0) void ov106_0224372C(BgConfig *param0, Window *param1) { - sub_0200DAA4(param0, 0, (1024 - 9), 11, 0, 98); - Window_Show(param1, 1, (1024 - 9), 11); + LoadStandardWindowGraphics(param0, 0, (1024 - 9), 11, 0, 98); + Window_DrawStandardFrame(param1, 1, (1024 - 9), 11); return; } void ov106_02243758(Window *param0, int param1) { - sub_0200DD0C(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 98); + LoadMessageBoxGraphics(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 98); Window_FillTilemap(param0, 15); - sub_0200E060(param0, 0, ((1024 - 9) - (18 + 12)), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 0, ((1024 - 9) - (18 + 12)), 10); return; } diff --git a/src/overlay107/ov107_02241AE0.c b/src/overlay107/ov107_02241AE0.c index 0671fd0110..ce0b81f282 100644 --- a/src/overlay107/ov107_02241AE0.c +++ b/src/overlay107/ov107_02241AE0.c @@ -3,19 +3,13 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020302DC_decl.h" #include "struct_decls/struct_0203041C_decl.h" #include "struct_decls/struct_0203068C_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02099F80.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay104/ov104_0222DCE0.h" #include "overlay104/ov104_0223B6F4.h" #include "overlay104/struct_ov104_0223597C.h" @@ -38,27 +32,27 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "palette.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A784.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_020302D0.h" @@ -249,12 +243,12 @@ struct UnkStruct_ov107_02241D6C_t { u16 unk_3C[8]; BgConfig *unk_4C; Window unk_50[18]; - UnkStruct_02081CF4 unk_170; - UIControlData * unk_17C; - ResourceMetadata unk_180[3]; - BmpList * unk_198; - ResourceMetadata * unk_19C; - UnkStruct_ov84_02240FA8 unk_1A0; + MenuTemplate unk_170; + Menu *unk_17C; + StringList unk_180[3]; + ListMenu *unk_198; + StringList *unk_19C; + ListMenuTemplate unk_1A0; PaletteData *unk_1C0; UnkStruct_0200C440 * unk_1C4; Options * unk_1C8; @@ -339,16 +333,16 @@ static void ov107_0224414C(UnkStruct_ov107_02241D6C * param0, Window * param1, u static void ov107_022441B0(UnkStruct_ov107_02241D6C * param0, u8 param1, u8 param2, int param3); static void ov107_022441DC(UnkStruct_ov107_02241D6C * param0); static void ov107_02244240(UnkStruct_ov107_02241D6C * param0, u8 param1); -static void ov107_0224440C(BmpList * param0, u32 param1, u8 param2); -static void ov107_02244560(BmpList * param0, u32 param1, u8 param2); +static void ov107_0224440C(ListMenu *param0, u32 param1, u8 param2); +static void ov107_02244560(ListMenu *param0, u32 param1, u8 param2); static void ov107_022445C4(UnkStruct_ov107_02241D6C * param0); -static void ov107_02244690(BmpList * param0, u32 param1, u8 param2); -static void ov107_02244708(BmpList * param0, u32 param1, u8 param2); +static void ov107_02244690(ListMenu *param0, u32 param1, u8 param2); +static void ov107_02244708(ListMenu *param0, u32 param1, u8 param2); static void ov107_02244780(UnkStruct_ov107_02241D6C * param0); -static void ov107_0224486C(BmpList * param0, u32 param1, u8 param2); -static void ov107_022448E8(BmpList * param0, u32 param1, u8 param2); +static void ov107_0224486C(ListMenu *param0, u32 param1, u8 param2); +static void ov107_022448E8(ListMenu *param0, u32 param1, u8 param2); static void ov107_02244944(UnkStruct_ov107_02241D6C * param0); -static void ov107_02244A1C(BmpList * param0, u32 param1, u8 param2); +static void ov107_02244A1C(ListMenu *param0, u32 param1, u8 param2); static void ov107_02244A74(UnkStruct_ov107_02241D6C * param0, u32 param1, s32 param2, u32 param3, int param4); static void ov107_02244A8C(UnkStruct_ov107_02241D6C * param0, u32 param1, BoxPokemon * param2); static void ov107_02244A98(UnkStruct_ov107_02241D6C * param0, u32 param1); @@ -432,7 +426,7 @@ static const u16 Unk_ov107_02249E34[3][3] = { {0x0, 0x0, 0x0} }; -static const UnkStruct_ov84_02240FA8 Unk_ov107_02249EE4 = { +static const ListMenuTemplate Unk_ov107_02249EE4 = { NULL, ov107_0224440C, ov107_02244560, @@ -588,7 +582,7 @@ int ov107_02241D2C (OverlayManager * param0, int * param1) *(v1->unk_438) = v1->unk_0D; - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov107_02242E14(v1); OverlayManager_FreeData(param0); @@ -627,7 +621,7 @@ static BOOL ov107_02241D6C (UnkStruct_ov107_02241D6C * param0) } } else { ov107_02241E70(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 100); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 100); param0->unk_08++; } break; @@ -636,7 +630,7 @@ static BOOL ov107_02241D6C (UnkStruct_ov107_02241D6C * param0) if (param0->unk_0F >= 2) { param0->unk_0F = 0; ov107_02241E70(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 100); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 100); param0->unk_08++; } } else { @@ -644,7 +638,7 @@ static BOOL ov107_02241D6C (UnkStruct_ov107_02241D6C * param0) } break; case 4: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -721,7 +715,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 1: - v6 = sub_02001288(param0->unk_198); + v6 = ListMenu_ProcessInput(param0->unk_198); ov107_02249CE0(v6, 1500); switch (v6) { @@ -760,30 +754,30 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 2: - sub_020014D0(param0->unk_198, ¶m0->unk_16); + ListMenu_CalcTrueCursorPos(param0->unk_198, ¶m0->unk_16); if (gCoreSys.pressedKeys & PAD_KEY_UP) { if (param0->unk_16 == 0) { - sub_02001408(param0->unk_198, (UnkStruct_ov84_02240FA8 *)¶m0->unk_1A0, 0, ((NELEMS(Unk_ov107_02249FF0)) - 1), 1, PAD_KEY_DOWN, NULL, NULL); - sub_020013AC(param0->unk_198); + ListMenu_TestInput(param0->unk_198, (ListMenuTemplate *)¶m0->unk_1A0, 0, ((NELEMS(Unk_ov107_02249FF0)) - 1), 1, PAD_KEY_DOWN, NULL, NULL); + ListMenu_Draw(param0->unk_198); Sound_PlayEffect(1500); ov107_0224379C(param0, ¶m0->unk_50[6], 28, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); return 0; } } else if (gCoreSys.pressedKeys & PAD_KEY_DOWN) { if (param0->unk_16 == ((NELEMS(Unk_ov107_02249FF0)) - 1)) { - sub_02001408(param0->unk_198, (UnkStruct_ov84_02240FA8 *)¶m0->unk_1A0, 0, 0, 1, PAD_KEY_UP, NULL, NULL); - sub_020013AC(param0->unk_198); + ListMenu_TestInput(param0->unk_198, (ListMenuTemplate *)¶m0->unk_1A0, 0, 0, 1, PAD_KEY_UP, NULL, NULL); + ListMenu_Draw(param0->unk_198); Sound_PlayEffect(1500); ov107_0224379C(param0, ¶m0->unk_50[6], 24, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); return 0; } } - v6 = sub_02001288(param0->unk_198); + v6 = ListMenu_ProcessInput(param0->unk_198); ov107_02249CE0(v6, 1500); - sub_020014D0(param0->unk_198, ¶m0->unk_16); + ListMenu_CalcTrueCursorPos(param0->unk_198, ¶m0->unk_16); switch (v6) { case 0xffffffff: @@ -817,7 +811,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) v2 = ov107_02249CAC(param0->unk_1CC, param0->unk_09, 0); if (v2 == 3) { - sub_020057A4(1500, 0); + Sound_StopEffect(1500, 0); Sound_PlayEffect(1523); } else { param0->unk_13 = v6; @@ -832,7 +826,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 3: - v6 = sub_02001BE0(param0->unk_17C); + v6 = Menu_ProcessInput(param0->unk_17C); switch (v6) { case 0xffffffff: @@ -900,7 +894,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 4: - v6 = sub_02001BE0(param0->unk_17C); + v6 = Menu_ProcessInput(param0->unk_17C); switch (v6) { case 0xffffffff: @@ -961,9 +955,9 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) break; case 8: GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); - v6 = sub_02001288(param0->unk_198); + v6 = ListMenu_ProcessInput(param0->unk_198); ov107_02249CE0(v6, 1500); - sub_020014D0(param0->unk_198, ¶m0->unk_16); + ListMenu_CalcTrueCursorPos(param0->unk_198, ¶m0->unk_16); switch (v6) { case 0xffffffff: @@ -1003,7 +997,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) v2 = ov107_02249CAC(param0->unk_1CC, param0->unk_09, 1); if (v2 == 3) { - sub_020057A4(1500, 0); + Sound_StopEffect(1500, 0); Sound_PlayEffect(1523); } else { param0->unk_13 = v6; @@ -1017,9 +1011,9 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 9: - v6 = sub_02001288(param0->unk_198); + v6 = ListMenu_ProcessInput(param0->unk_198); ov107_02249CE0(v6, 1500); - sub_020014D0(param0->unk_198, ¶m0->unk_16); + ListMenu_CalcTrueCursorPos(param0->unk_198, ¶m0->unk_16); switch (v6) { case 0xffffffff: @@ -1046,7 +1040,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) break; case 10: v7 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param0->unk_0D)); - v6 = sub_02001BE0(param0->unk_17C); + v6 = Menu_ProcessInput(param0->unk_17C); switch (v6) { case 0xffffffff: @@ -1095,7 +1089,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 11: - v6 = sub_02001BE0(param0->unk_17C); + v6 = Menu_ProcessInput(param0->unk_17C); switch (v6) { case 0xffffffff: @@ -1170,7 +1164,7 @@ static BOOL ov107_02241EC8 (UnkStruct_ov107_02241D6C * param0) } break; case 17: - v6 = sub_02001BE0(param0->unk_17C); + v6 = Menu_ProcessInput(param0->unk_17C); switch (v6) { case 0xffffffff: @@ -1355,11 +1349,11 @@ static BOOL ov107_02242DCC (UnkStruct_ov107_02241D6C * param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 100); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 100); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -2318,7 +2312,7 @@ static void ov107_02244018 (UnkStruct_ov107_02241D6C * param0) static void ov107_0224403C (UnkStruct_ov107_02241D6C * param0) { - sub_020014DC(param0->unk_198, ¶m0->unk_18, ¶m0->unk_1A); + ListMenu_GetListAndCursorPos(param0->unk_198, ¶m0->unk_18, ¶m0->unk_1A); ov107_02245288(¶m0->unk_50[8]); ov107_02245730(param0); @@ -2397,18 +2391,18 @@ static void ov107_0224414C (UnkStruct_ov107_02241D6C * param0, Window * param1, int v0; for (v0 = 0; v0 < 3; v0++) { - param0->unk_180[v0].unk_00 = NULL; - param0->unk_180[v0].unk_04 = 0; + param0->unk_180[v0].entry = NULL; + param0->unk_180[v0].index = 0; } - param0->unk_170.unk_00 = param0->unk_180; - param0->unk_170.unk_04 = param1; - param0->unk_170.unk_08 = 0; - param0->unk_170.unk_09 = 1; - param0->unk_170.unk_0A = param2; - param0->unk_170.unk_0B_0 = 0; - param0->unk_170.unk_0B_4 = 0; - param0->unk_170.unk_0B_6 = 1; + param0->unk_170.choices = param0->unk_180; + param0->unk_170.window = param1; + param0->unk_170.fontID = FONT_SYSTEM; + param0->unk_170.xSize = 1; + param0->unk_170.ySize = param2; + param0->unk_170.lineSpacing = 0; + param0->unk_170.suppressCursor = FALSE; + param0->unk_170.loopAround = TRUE; return; } @@ -2420,8 +2414,8 @@ static void ov107_022441B0 (UnkStruct_ov107_02241D6C * param0, u8 param1, u8 par MessageLoader_GetStrbuf(param0->unk_20, param3, param0->unk_30[param1]); - param0->unk_180[param1].unk_00 = (const void *)param0->unk_30[param1]; - param0->unk_180[param1].unk_04 = param2; + param0->unk_180[param1].entry = (const void *)param0->unk_30[param1]; + param0->unk_180[param1].index = param2; return; } @@ -2433,7 +2427,7 @@ static void ov107_022441DC (UnkStruct_ov107_02241D6C * param0) ov107_022441B0(param0, 0, 0, 30); ov107_022441B0(param0, 1, 1, 31); - param0->unk_17C = sub_02001B7C(¶m0->unk_170, 8, 0, 0, 100, PAD_BUTTON_B); + param0->unk_17C = Menu_NewAndCopyToVRAM(¶m0->unk_170, 8, 0, 0, 100, PAD_BUTTON_B); param0->unk_0E_4 = 1; return; @@ -2468,7 +2462,7 @@ static void ov107_02244240 (UnkStruct_ov107_02241D6C * param0, u8 param1) v1 = Unk_ov107_02249E06[v0 - 1]; } - param0->unk_19C = sub_02013A04((v1 + 1), 100); + param0->unk_19C = StringList_New((v1 + 1), 100); for (v4 = 0; v4 < v1; v4++) { if (param1 == 6) { @@ -2477,23 +2471,23 @@ static void ov107_02244240 (UnkStruct_ov107_02241D6C * param0, u8 param1) v3 = Unk_ov107_02249F84[v4]; } - sub_02013A4C(param0->unk_19C, v5, v3, v4); + StringList_AddFromMessageBank(param0->unk_19C, v5, v3, v4); } - sub_02013A4C(param0->unk_19C, param0->unk_20, 13, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, 13, 0xfffffffe); param0->unk_1A0 = Unk_ov107_02249EE4; - param0->unk_1A0.unk_00 = param0->unk_19C; - param0->unk_1A0.unk_0C = ¶m0->unk_50[5]; - param0->unk_1A0.unk_1C = param0; - param0->unk_1A0.unk_04 = ov107_0224440C; - param0->unk_1A0.unk_08 = ov107_02244560; - param0->unk_1A0.unk_10 = (v1 + 1); - param0->unk_1A0.unk_18_0 = 0; - param0->unk_1A0.unk_12 = 6; - param0->unk_1A0.unk_15 = 0; - param0->unk_1A0.unk_1A_15 = 1; - param0->unk_198 = sub_0200112C(¶m0->unk_1A0, 0, 0, 100); + param0->unk_1A0.choices = param0->unk_19C; + param0->unk_1A0.window = ¶m0->unk_50[5]; + param0->unk_1A0.tmp = param0; + param0->unk_1A0.cursorCallback = ov107_0224440C; + param0->unk_1A0.printCallback = ov107_02244560; + param0->unk_1A0.count = (v1 + 1); + param0->unk_1A0.textColorBg = 0; + param0->unk_1A0.maxDisplay = 6; + param0->unk_1A0.textXOffset = 0; + param0->unk_1A0.cursorType = 1; + param0->unk_198 = ListMenu_New(¶m0->unk_1A0, 0, 0, 100); ov107_02245650(param0, ¶m0->unk_50[5]); MessageLoader_Free(v5); @@ -2501,23 +2495,23 @@ static void ov107_02244240 (UnkStruct_ov107_02241D6C * param0, u8 param1) return; } -static void ov107_0224440C (BmpList * param0, u32 param1, u8 param2) +static void ov107_0224440C(ListMenu *param0, u32 param1, u8 param2) { u32 v0, v1; u16 v2, v3, v4, v5; - UnkStruct_ov107_02241D6C * v6 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + UnkStruct_ov107_02241D6C *v6 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); - sub_020014D0(v6->unk_198, &v5); + ListMenu_CalcTrueCursorPos(v6->unk_198, &v5); } else { v5 = 0; } - v0 = sub_02001504(param0, 2); - v1 = sub_02001504(param0, 3); + v0 = ListMenu_GetAttribute(param0, 2); + v1 = ListMenu_GetAttribute(param0, 3); - sub_020014DC(param0, &v3, &v4); + ListMenu_GetListAndCursorPos(param0, &v3, &v4); if (v3 == 0) { ov107_02249BAC(v6->unk_3E8, 0); @@ -2547,9 +2541,9 @@ static void ov107_0224440C (BmpList * param0, u32 param1, u8 param2) return; } -static void ov107_02244560 (BmpList * param0, u32 param1, u8 param2) +static void ov107_02244560(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C * v0 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + UnkStruct_ov107_02241D6C *v0 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); if (param1 != 0xfffffffe) { ov107_02244A74(v0, 0, ov107_02244D5C(v0, param1, v0->unk_13), 4, 1); @@ -2570,33 +2564,33 @@ static void ov107_022445C4 (UnkStruct_ov107_02241D6C * param0) ov107_02249D84(param0->unk_4C, ¶m0->unk_50[10]); Window_FillTilemap(¶m0->unk_50[10], 15); - param0->unk_19C = sub_02013A04((NELEMS(Unk_ov107_02249FF0)), 100); + param0->unk_19C = StringList_New((NELEMS(Unk_ov107_02249FF0)), 100); for (v3 = 0; v3 < (NELEMS(Unk_ov107_02249FF0)); v3++) { - sub_02013A4C(param0->unk_19C, param0->unk_20, Unk_ov107_02249FF0[v3][1], Unk_ov107_02249FF0[v3][2]); + StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, Unk_ov107_02249FF0[v3][1], Unk_ov107_02249FF0[v3][2]); } param0->unk_1A0 = Unk_ov107_02249EE4; - param0->unk_1A0.unk_00 = param0->unk_19C; - param0->unk_1A0.unk_0C = ¶m0->unk_50[10]; - param0->unk_1A0.unk_1C = param0; - param0->unk_1A0.unk_04 = ov107_02244690; - param0->unk_1A0.unk_08 = ov107_02244708; - param0->unk_1A0.unk_10 = (NELEMS(Unk_ov107_02249FF0)); - param0->unk_1A0.unk_12 = (NELEMS(Unk_ov107_02249FF0)); - param0->unk_1A0.unk_18_0 = 15; - param0->unk_198 = sub_0200112C(¶m0->unk_1A0, 0, 0, 100); + param0->unk_1A0.choices = param0->unk_19C; + param0->unk_1A0.window = ¶m0->unk_50[10]; + param0->unk_1A0.tmp = param0; + param0->unk_1A0.cursorCallback = ov107_02244690; + param0->unk_1A0.printCallback = ov107_02244708; + param0->unk_1A0.count = (NELEMS(Unk_ov107_02249FF0)); + param0->unk_1A0.maxDisplay = (NELEMS(Unk_ov107_02249FF0)); + param0->unk_1A0.textColorBg = 15; + param0->unk_198 = ListMenu_New(¶m0->unk_1A0, 0, 0, 100); ov107_02245650(param0, ¶m0->unk_50[10]); return; } -static void ov107_02244690 (BmpList * param0, u32 param1, u8 param2) +static void ov107_02244690(ListMenu *param0, u32 param1, u8 param2) { u8 v0; u16 v1; - UnkStruct_ov107_02241D6C * v2 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + UnkStruct_ov107_02241D6C *v2 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); @@ -2626,13 +2620,13 @@ static void ov107_02244690 (BmpList * param0, u32 param1, u8 param2) return; } -static void ov107_02244708 (BmpList * param0, u32 param1, u8 param2) +static void ov107_02244708(ListMenu *param0, u32 param1, u8 param2) { u16 v0; u8 v1, v2; - UnkStruct_ov107_02241D6C * v3 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + UnkStruct_ov107_02241D6C *v3 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); - sub_020014D0(param0, &v0); + ListMenu_CalcTrueCursorPos(param0, &v0); v1 = ov107_02249CAC(v3->unk_1CC, v3->unk_09, 0); switch (param1) { @@ -2657,7 +2651,7 @@ static void ov107_02244708 (BmpList * param0, u32 param1, u8 param2) break; } - sub_020013D8(param0, v2, 15, 2); + ListMenu_SetTextColors(param0, v2, 15, 2); return; } @@ -2678,22 +2672,22 @@ static void ov107_02244780 (UnkStruct_ov107_02241D6C * param0) ov107_02249D84(param0->unk_4C, ¶m0->unk_50[11]); Window_FillTilemap(¶m0->unk_50[11], 15); - param0->unk_19C = sub_02013A04((NELEMS(Unk_ov107_02249F54)), 100); + param0->unk_19C = StringList_New((NELEMS(Unk_ov107_02249F54)), 100); for (v3 = 0; v3 < (NELEMS(Unk_ov107_02249F54)); v3++) { - sub_02013A4C(param0->unk_19C, param0->unk_20, Unk_ov107_02249F54[v3][1], Unk_ov107_02249F54[v3][2]); + StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, Unk_ov107_02249F54[v3][1], Unk_ov107_02249F54[v3][2]); } param0->unk_1A0 = Unk_ov107_02249EE4; - param0->unk_1A0.unk_00 = param0->unk_19C; - param0->unk_1A0.unk_0C = ¶m0->unk_50[11]; - param0->unk_1A0.unk_1C = param0; - param0->unk_1A0.unk_04 = ov107_0224486C; - param0->unk_1A0.unk_08 = ov107_022448E8; - param0->unk_1A0.unk_10 = (NELEMS(Unk_ov107_02249F54)); - param0->unk_1A0.unk_12 = (NELEMS(Unk_ov107_02249F54)); - param0->unk_1A0.unk_18_0 = 15; - param0->unk_198 = sub_0200112C(¶m0->unk_1A0, 0, 0, 100); + param0->unk_1A0.choices = param0->unk_19C; + param0->unk_1A0.window = ¶m0->unk_50[11]; + param0->unk_1A0.tmp = param0; + param0->unk_1A0.cursorCallback = ov107_0224486C; + param0->unk_1A0.printCallback = ov107_022448E8; + param0->unk_1A0.count = (NELEMS(Unk_ov107_02249F54)); + param0->unk_1A0.maxDisplay = (NELEMS(Unk_ov107_02249F54)); + param0->unk_1A0.textColorBg = 15; + param0->unk_198 = ListMenu_New(¶m0->unk_1A0, 0, 0, 100); ov107_02245650(param0, ¶m0->unk_50[11]); @@ -2703,11 +2697,11 @@ static void ov107_02244780 (UnkStruct_ov107_02241D6C * param0) return; } -static void ov107_0224486C (BmpList * param0, u32 param1, u8 param2) +static void ov107_0224486C(ListMenu *param0, u32 param1, u8 param2) { u16 v0; u8 v1; - UnkStruct_ov107_02241D6C * v2 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + UnkStruct_ov107_02241D6C *v2 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); @@ -2740,10 +2734,10 @@ static void ov107_0224486C (BmpList * param0, u32 param1, u8 param2) return; } -static void ov107_022448E8 (BmpList * param0, u32 param1, u8 param2) +static void ov107_022448E8(ListMenu *param0, u32 param1, u8 param2) { u8 v0, v1; - UnkStruct_ov107_02241D6C * v2 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + UnkStruct_ov107_02241D6C *v2 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); v0 = ov107_02249CAC(v2->unk_1CC, v2->unk_09, 1); @@ -2767,7 +2761,7 @@ static void ov107_022448E8 (BmpList * param0, u32 param1, u8 param2) break; } - sub_020013D8(param0, v1, 15, 2); + ListMenu_SetTextColors(param0, v1, 15, 2); return; } @@ -2794,23 +2788,23 @@ static void ov107_02244944 (UnkStruct_ov107_02241D6C * param0) ov107_02249D84(param0->unk_4C, ¶m0->unk_50[9]); Window_FillTilemap(¶m0->unk_50[9], 15); - param0->unk_19C = sub_02013A04(5, 100); + param0->unk_19C = StringList_New(5, 100); for (v0 = 0; v0 < 5; v0++) { - sub_02013A4C(param0->unk_19C, param0->unk_20, Unk_ov107_02249F2C[v0][0], Unk_ov107_02249F2C[v0][1]); + StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, Unk_ov107_02249F2C[v0][0], Unk_ov107_02249F2C[v0][1]); } param0->unk_1A0 = Unk_ov107_02249EE4; - param0->unk_1A0.unk_00 = param0->unk_19C; - param0->unk_1A0.unk_0C = ¶m0->unk_50[9]; - param0->unk_1A0.unk_1C = param0; - param0->unk_1A0.unk_04 = ov107_02244A1C; - param0->unk_1A0.unk_08 = NULL; - param0->unk_1A0.unk_10 = 5; - param0->unk_1A0.unk_12 = 5; - param0->unk_1A0.unk_18_0 = 15; - param0->unk_1A0.unk_1C = param0; - param0->unk_198 = sub_0200112C(¶m0->unk_1A0, param0->unk_18, param0->unk_1A, 100); + param0->unk_1A0.choices = param0->unk_19C; + param0->unk_1A0.window = ¶m0->unk_50[9]; + param0->unk_1A0.tmp = param0; + param0->unk_1A0.cursorCallback = ov107_02244A1C; + param0->unk_1A0.printCallback = NULL; + param0->unk_1A0.count = 5; + param0->unk_1A0.maxDisplay = 5; + param0->unk_1A0.textColorBg = 15; + param0->unk_1A0.tmp = param0; + param0->unk_198 = ListMenu_New(¶m0->unk_1A0, param0->unk_18, param0->unk_1A, 100); ov107_02245650(param0, ¶m0->unk_50[9]); Window_ScheduleCopyToVRAM(¶m0->unk_50[9]); @@ -2818,18 +2812,18 @@ static void ov107_02244944 (UnkStruct_ov107_02241D6C * param0) return; } -static void ov107_02244A1C (BmpList * param0, u32 param1, u8 param2) +static void ov107_02244A1C(ListMenu *param0, u32 param1, u8 param2) { UnkStruct_ov107_02241D6C * v0; u16 v1; - v0 = (UnkStruct_ov107_02241D6C *)sub_02001504(param0, 19); + v0 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); } - sub_020014D0(param0, &v1); + ListMenu_CalcTrueCursorPos(param0, &v1); ov107_0224379C(v0, &v0->unk_50[8], Unk_ov107_02249E18[v1], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); return; @@ -3374,7 +3368,7 @@ static BOOL ov107_02245210 (Pokemon * param0) static void ov107_02245288 (Window * param0) { - sub_0200E084(param0, 1); + Window_EraseMessageBox(param0, 1); Window_ClearAndScheduleCopyToVRAM(param0); return; } @@ -3635,7 +3629,7 @@ static void ov107_022455A0 (UnkStruct_ov107_02241D6C * param0, u8 param1, u16 pa v0 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param1)); - Pokemon_SetValue(v0, 6, ¶m2); + Pokemon_SetValue(v0, MON_DATA_HELD_ITEM, ¶m2); ov107_02249BAC(param0->unk_404[ov107_02249C98(param0->unk_14, param1)], 1); ov107_02244A8C(param0, 0, Pokemon_GetBoxPokemon(v0)); @@ -3651,9 +3645,9 @@ static void ov107_02245618 (UnkStruct_ov107_02241D6C * param0) { if (param0->unk_0E_4 == 1) { param0->unk_0E_4 = 0; - sub_02001BC4(param0->unk_17C, NULL); - Window_Clear(param0->unk_170.unk_04, 1); - Window_ClearAndScheduleCopyToVRAM(param0->unk_170.unk_04); + Menu_Free(param0->unk_17C, NULL); + Window_EraseStandardFrame(param0->unk_170.window, 1); + Window_ClearAndScheduleCopyToVRAM(param0->unk_170.window); } return; @@ -3672,7 +3666,7 @@ static void ov107_02245660 (UnkStruct_ov107_02241D6C * param0) ov107_02249BAC(param0->unk_3EC, 0); ov107_02249BAC(param0->unk_434, 0); - Window_Clear(¶m0->unk_50[15], 1); + Window_EraseStandardFrame(¶m0->unk_50[15], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[15]); ov107_0224503C(param0, param0->unk_0D, 0); @@ -3692,8 +3686,8 @@ static void ov107_022456E4 (UnkStruct_ov107_02241D6C * param0) ov107_02245288(¶m0->unk_50[6]); ov107_02249BAC(param0->unk_3F0, 1); - sub_020013AC(param0->unk_198); - sub_020014D0(param0->unk_198, &v0); + ListMenu_Draw(param0->unk_198); + ListMenu_CalcTrueCursorPos(param0->unk_198, &v0); ov107_02243EF8(param0, ¶m0->unk_50[12], ov107_02244DE0(param0, v0, param0->unk_13)); return; @@ -3705,14 +3699,14 @@ static void ov107_02245730 (UnkStruct_ov107_02241D6C * param0) if (param0->unk_0E_0 == 1) { param0->unk_0E_0 = 0; - v0 = (Window *)sub_02001504(param0->unk_198, 18); + v0 = (Window *)ListMenu_GetAttribute(param0->unk_198, 18); - Window_Clear(v0, 1); + Window_EraseStandardFrame(v0, 1); Window_FillTilemap(v0, 0); Window_ClearAndScheduleCopyToVRAM(v0); - sub_02013A3C(param0->unk_19C); - sub_02001384(param0->unk_198, NULL, NULL); + StringList_Free(param0->unk_19C); + ListMenu_Free(param0->unk_198, NULL, NULL); } return; diff --git a/src/overlay107/ov107_02245EB0.c b/src/overlay107/ov107_02245EB0.c index 300d50777c..e80d9845e6 100644 --- a/src/overlay107/ov107_02245EB0.c +++ b/src/overlay107/ov107_02245EB0.c @@ -3,19 +3,13 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_0200C440_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020302DC_decl.h" #include "struct_decls/struct_0203041C_decl.h" #include "struct_decls/struct_0203068C_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02099F80.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay104/ov104_0222DCE0.h" #include "overlay104/ov104_0223B6F4.h" #include "overlay104/struct_ov104_0223597C.h" @@ -38,27 +32,27 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "palette.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "trainer_info.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A784.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_020302D0.h" @@ -104,11 +98,11 @@ struct UnkStruct_ov107_02246170_t { u16 unk_3C[8]; BgConfig *unk_4C; Window unk_50[12]; - UnkStruct_02081CF4 unk_110; - UIControlData * unk_11C; - ResourceMetadata unk_120[3]; - BmpList * unk_138; - ResourceMetadata * unk_13C; + MenuTemplate unk_110; + Menu *unk_11C; + StringList unk_120[3]; + ListMenu *unk_138; + StringList *unk_13C; PaletteData *unk_140; UnkStruct_0200C440 * unk_144; Options * unk_148; @@ -180,10 +174,10 @@ static void ov107_02247D68(UnkStruct_ov107_02246170 * param0, u8 param1, u8 para static void ov107_02247D94(UnkStruct_ov107_02246170 * param0); static void ov107_02247DF0(UnkStruct_ov107_02246170 * param0); static void ov107_02247E5C(UnkStruct_ov107_02246170 * param0); -static void ov107_02247F14(BmpList * param0, u32 param1, u8 param2); +static void ov107_02247F14(ListMenu *param0, u32 param1, u8 param2); static void ov107_02247F6C(UnkStruct_ov107_02246170 * param0); -static void ov107_02248028(BmpList * param0, u32 param1, u8 param2); -static void ov107_022480A0(BmpList * param0, u32 param1, u8 param2); +static void ov107_02248028(ListMenu *param0, u32 param1, u8 param2); +static void ov107_022480A0(ListMenu *param0, u32 param1, u8 param2); static void ov107_022480EC(UnkStruct_ov107_02246170 * param0, u32 param1, s32 param2, u32 param3, int param4); static void ov107_02248104(UnkStruct_ov107_02246170 * param0, u32 param1, BoxPokemon * param2); static void ov107_02248110(UnkStruct_ov107_02246170 * param0, u32 param1); @@ -382,7 +376,7 @@ int ov107_02246130 (OverlayManager * param0, int * param1) *(v1->unk_3C8) = v1->unk_0D; - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov107_02246D84(v1); OverlayManager_FreeData(param0); @@ -421,7 +415,7 @@ static BOOL ov107_02246170 (UnkStruct_ov107_02246170 * param0) } } else { ov107_02246274(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 100); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 100); param0->unk_08++; } break; @@ -431,7 +425,7 @@ static BOOL ov107_02246170 (UnkStruct_ov107_02246170 * param0) param0->unk_17 = 0; ov107_02246274(param0); - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 100); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 100); param0->unk_08++; } @@ -440,7 +434,7 @@ static BOOL ov107_02246170 (UnkStruct_ov107_02246170 * param0) } break; case 4: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -521,9 +515,9 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 2: - v7 = sub_02001288(param0->unk_138); + v7 = ListMenu_ProcessInput(param0->unk_138); ov107_02249CE0(v7, 1500); - sub_020014D0(param0->unk_138, ¶m0->unk_18); + ListMenu_CalcTrueCursorPos(param0->unk_138, ¶m0->unk_18); switch (v7) { case 0xffffffff: @@ -582,7 +576,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 3: - v7 = sub_02001BE0(param0->unk_11C); + v7 = Menu_ProcessInput(param0->unk_11C); switch (v7) { case 0xffffffff: @@ -620,7 +614,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 4: - v7 = sub_02001BE0(param0->unk_11C); + v7 = Menu_ProcessInput(param0->unk_11C); switch (v7) { case 0xffffffff: @@ -663,7 +657,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 5: - v7 = sub_02001BE0(param0->unk_11C); + v7 = Menu_ProcessInput(param0->unk_11C); switch (v7) { case 0xffffffff: @@ -704,9 +698,9 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 6: - v7 = sub_02001288(param0->unk_138); + v7 = ListMenu_ProcessInput(param0->unk_138); ov107_02249CE0(v7, 1500); - sub_020014D0(param0->unk_138, ¶m0->unk_18); + ListMenu_CalcTrueCursorPos(param0->unk_138, ¶m0->unk_18); switch (v7) { case 0xffffffff: @@ -759,7 +753,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) v6 = ov107_02249CAC(param0->unk_14C, param0->unk_09, 2); if (v6 == (3 - 1)) { - sub_020057A4(1500, 0); + Sound_StopEffect(1500, 0); Sound_PlayEffect(1523); } else { param0->unk_13 = v7; @@ -777,7 +771,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 7: - v7 = sub_02001BE0(param0->unk_11C); + v7 = Menu_ProcessInput(param0->unk_11C); switch (v7) { case 0xffffffff: @@ -798,7 +792,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 8: - v7 = sub_02001BE0(param0->unk_11C); + v7 = Menu_ProcessInput(param0->unk_11C); switch (v7) { case 0xffffffff: @@ -819,7 +813,7 @@ static BOOL ov107_022462CC (UnkStruct_ov107_02246170 * param0) } break; case 9: - v7 = sub_02001BE0(param0->unk_11C); + v7 = Menu_ProcessInput(param0->unk_11C); switch (v7) { case 0xffffffff: @@ -1031,11 +1025,11 @@ static BOOL ov107_02246D3C (UnkStruct_ov107_02246170 * param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 100); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 100); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -1871,18 +1865,18 @@ static void ov107_02247D04 (UnkStruct_ov107_02246170 * param0, Window * param1, int v0; for (v0 = 0; v0 < 3; v0++) { - param0->unk_120[v0].unk_00 = NULL; - param0->unk_120[v0].unk_04 = 0; + param0->unk_120[v0].entry = NULL; + param0->unk_120[v0].index = 0; } - param0->unk_110.unk_00 = param0->unk_120; - param0->unk_110.unk_04 = param1; - param0->unk_110.unk_08 = 0; - param0->unk_110.unk_09 = 1; - param0->unk_110.unk_0A = param2; - param0->unk_110.unk_0B_0 = 0; - param0->unk_110.unk_0B_4 = 0; - param0->unk_110.unk_0B_6 = 1; + param0->unk_110.choices = param0->unk_120; + param0->unk_110.window = param1; + param0->unk_110.fontID = FONT_SYSTEM; + param0->unk_110.xSize = 1; + param0->unk_110.ySize = param2; + param0->unk_110.lineSpacing = 0; + param0->unk_110.suppressCursor = FALSE; + param0->unk_110.loopAround = TRUE; return; } @@ -1894,8 +1888,8 @@ static void ov107_02247D68 (UnkStruct_ov107_02246170 * param0, u8 param1, u8 par MessageLoader_GetStrbuf(param0->unk_20, param3, param0->unk_30[param1]); - param0->unk_120[param1].unk_00 = (const void *)param0->unk_30[param1]; - param0->unk_120[param1].unk_04 = param2; + param0->unk_120[param1].entry = (const void *)param0->unk_30[param1]; + param0->unk_120[param1].index = param2; return; } @@ -1907,7 +1901,7 @@ static void ov107_02247D94 (UnkStruct_ov107_02246170 * param0) ov107_02247D68(param0, 0, 0, 26); ov107_02247D68(param0, 1, 1, 27); - param0->unk_11C = sub_02001B7C(¶m0->unk_110, 8, 0, 0, 100, PAD_BUTTON_B); + param0->unk_11C = Menu_NewAndCopyToVRAM(¶m0->unk_110, 8, 0, 0, 100, PAD_BUTTON_B); param0->unk_0F_2 = 1; return; @@ -1921,13 +1915,13 @@ static void ov107_02247DF0 (UnkStruct_ov107_02246170 * param0) ov107_02247D68(param0, 1, 1, 23); ov107_02247D68(param0, 2, 2, 24); - param0->unk_11C = sub_02001B7C(¶m0->unk_110, 8, 0, 0, 100, PAD_BUTTON_B); + param0->unk_11C = Menu_NewAndCopyToVRAM(¶m0->unk_110, 8, 0, 0, 100, PAD_BUTTON_B); param0->unk_0F_2 = 1; return; } -static const UnkStruct_ov84_02240FA8 Unk_ov107_0224A17C = { +static const ListMenuTemplate Unk_ov107_0224A17C = { NULL, NULL, NULL, @@ -1966,46 +1960,46 @@ static const u32 Unk_ov107_0224A0CC[] = { static void ov107_02247E5C (UnkStruct_ov107_02246170 * param0) { int v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; ov107_02249D84(param0->unk_4C, ¶m0->unk_50[5]); Window_FillTilemap(¶m0->unk_50[5], 15); - param0->unk_13C = sub_02013A04((NELEMS(Unk_ov107_0224A1BC)), 100); + param0->unk_13C = StringList_New((NELEMS(Unk_ov107_0224A1BC)), 100); for (v0 = 0; v0 < (NELEMS(Unk_ov107_0224A1BC)); v0++) { - sub_02013A4C(param0->unk_13C, param0->unk_20, Unk_ov107_0224A1BC[v0][0], Unk_ov107_0224A1BC[v0][1]); + StringList_AddFromMessageBank(param0->unk_13C, param0->unk_20, Unk_ov107_0224A1BC[v0][0], Unk_ov107_0224A1BC[v0][1]); } v1 = Unk_ov107_0224A17C; - v1.unk_00 = param0->unk_13C; - v1.unk_0C = ¶m0->unk_50[5]; - v1.unk_1C = param0; - v1.unk_04 = ov107_02247F14; - v1.unk_08 = NULL; - v1.unk_10 = (NELEMS(Unk_ov107_0224A1BC)); - v1.unk_18_0 = 15; - v1.unk_12 = 4; + v1.choices = param0->unk_13C; + v1.window = ¶m0->unk_50[5]; + v1.tmp = param0; + v1.cursorCallback = ov107_02247F14; + v1.printCallback = NULL; + v1.count = (NELEMS(Unk_ov107_0224A1BC)); + v1.textColorBg = 15; + v1.maxDisplay = 4; - param0->unk_138 = sub_0200112C(&v1, param0->unk_1C, param0->unk_1E, 100); + param0->unk_138 = ListMenu_New(&v1, param0->unk_1C, param0->unk_1E, 100); param0->unk_0F_1 = 1; Window_ScheduleCopyToVRAM(¶m0->unk_50[5]); return; } -static void ov107_02247F14 (BmpList * param0, u32 param1, u8 param2) +static void ov107_02247F14(ListMenu *param0, u32 param1, u8 param2) { u32 v0, v1; u16 v2, v3, v4; - UnkStruct_ov107_02246170 * v5 = (UnkStruct_ov107_02246170 *)sub_02001504(param0, 19); + UnkStruct_ov107_02246170 *v5 = (UnkStruct_ov107_02246170 *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); } - sub_020014D0(param0, &v4); + ListMenu_CalcTrueCursorPos(param0, &v4); ov107_02247650(v5, &v5->unk_50[9], Unk_ov107_0224A0CC[v4], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); return; @@ -2028,46 +2022,46 @@ static const u16 Unk_ov107_0224A0AC[][2] = { static void ov107_02247F6C (UnkStruct_ov107_02246170 * param0) { int v0; - UnkStruct_ov84_02240FA8 v1; + ListMenuTemplate v1; ov107_02249D84(param0->unk_4C, ¶m0->unk_50[6]); Window_FillTilemap(¶m0->unk_50[6], 15); - param0->unk_13C = sub_02013A04((NELEMS(Unk_ov107_0224A19C)), 100); + param0->unk_13C = StringList_New((NELEMS(Unk_ov107_0224A19C)), 100); for (v0 = 0; v0 < (NELEMS(Unk_ov107_0224A19C)); v0++) { - sub_02013A4C(param0->unk_13C, param0->unk_20, Unk_ov107_0224A19C[v0][0], Unk_ov107_0224A19C[v0][1]); + StringList_AddFromMessageBank(param0->unk_13C, param0->unk_20, Unk_ov107_0224A19C[v0][0], Unk_ov107_0224A19C[v0][1]); } v1 = Unk_ov107_0224A17C; - v1.unk_00 = param0->unk_13C; - v1.unk_0C = ¶m0->unk_50[6]; - v1.unk_1C = param0; - v1.unk_04 = ov107_02248028; - v1.unk_08 = ov107_022480A0; - v1.unk_10 = (NELEMS(Unk_ov107_0224A19C)); - v1.unk_18_0 = 15; - v1.unk_12 = 4; + v1.choices = param0->unk_13C; + v1.window = ¶m0->unk_50[6]; + v1.tmp = param0; + v1.cursorCallback = ov107_02248028; + v1.printCallback = ov107_022480A0; + v1.count = (NELEMS(Unk_ov107_0224A19C)); + v1.textColorBg = 15; + v1.maxDisplay = 4; - param0->unk_138 = sub_0200112C(&v1, 0, 0, 100); + param0->unk_138 = ListMenu_New(&v1, 0, 0, 100); param0->unk_0F_1 = 1; Window_ScheduleCopyToVRAM(¶m0->unk_50[6]); return; } -static void ov107_02248028 (BmpList * param0, u32 param1, u8 param2) +static void ov107_02248028(ListMenu *param0, u32 param1, u8 param2) { u8 v0, v1; u16 v2; - UnkStruct_ov107_02246170 * v3 = (UnkStruct_ov107_02246170 *)sub_02001504(param0, 19); + UnkStruct_ov107_02246170 *v3 = (UnkStruct_ov107_02246170 *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); } - sub_020014D0(param0, &v2); + ListMenu_CalcTrueCursorPos(param0, &v2); v0 = ov107_02249CAC(v3->unk_14C, v3->unk_09, 2); @@ -2082,10 +2076,10 @@ static void ov107_02248028 (BmpList * param0, u32 param1, u8 param2) return; } -static void ov107_022480A0 (BmpList * param0, u32 param1, u8 param2) +static void ov107_022480A0(ListMenu *param0, u32 param1, u8 param2) { u8 v0, v1; - UnkStruct_ov107_02246170 * v2 = (UnkStruct_ov107_02246170 *)sub_02001504(param0, 19); + UnkStruct_ov107_02246170 *v2 = (UnkStruct_ov107_02246170 *)ListMenu_GetAttribute(param0, 19); v0 = ov107_02249CAC(v2->unk_14C, v2->unk_09, 2); v1 = 1; @@ -2110,7 +2104,7 @@ static void ov107_022480A0 (BmpList * param0, u32 param1, u8 param2) break; } - sub_020013D8(param0, v1, 15, 2); + ListMenu_SetTextColors(param0, v1, 15, 2); return; } @@ -2223,7 +2217,7 @@ static void ov107_022482B0 (UnkStruct_ov107_02246170 * param0) static void ov107_022482D4 (UnkStruct_ov107_02246170 * param0) { - sub_020014DC(param0->unk_138, ¶m0->unk_1C, ¶m0->unk_1E); + ListMenu_GetListAndCursorPos(param0->unk_138, ¶m0->unk_1C, ¶m0->unk_1E); ov107_02248860(¶m0->unk_50[9]); ov107_02249258(param0); @@ -2628,7 +2622,7 @@ static void ov107_0224883C (UnkStruct_ov107_02246170 * param0) static void ov107_02248860 (Window * param0) { - sub_0200E084(param0, 1); + Window_EraseMessageBox(param0, 1); Window_ClearAndScheduleCopyToVRAM(param0); return; @@ -2890,9 +2884,9 @@ static void ov107_02248BB4 (UnkStruct_ov107_02246170 * param0) { if (param0->unk_0F_2 == 1) { param0->unk_0F_2 = 0; - sub_02001BC4(param0->unk_11C, NULL); - Window_Clear(param0->unk_110.unk_04, 1); - Window_ClearAndScheduleCopyToVRAM(param0->unk_110.unk_04); + Menu_Free(param0->unk_11C, NULL); + Window_EraseStandardFrame(param0->unk_110.window, 1); + Window_ClearAndScheduleCopyToVRAM(param0->unk_110.window); } return; @@ -3338,15 +3332,15 @@ static void ov107_022490E8 (UnkStruct_ov107_02246170 * param0, u8 param1, u8 par if (param0->unk_3D0[ov107_02249C98(param0->unk_14, param1)] == 0) { v0 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL), 50); - Pokemon_SetValue(v1, 8, &v0); + Pokemon_SetValue(v1, MON_DATA_EXP, &v0); Pokemon_CalcLevelAndStats(v1); } else if (param0->unk_3D0[ov107_02249C98(param0->unk_14, param1)] == 1) { v0 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL), 55); - Pokemon_SetValue(v1, 8, &v0); + Pokemon_SetValue(v1, MON_DATA_EXP, &v0); Pokemon_CalcLevelAndStats(v1); } else { v0 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL), 45); - Pokemon_SetValue(v1, 8, &v0); + Pokemon_SetValue(v1, MON_DATA_EXP, &v0); Pokemon_CalcLevelAndStats(v1); } @@ -3372,13 +3366,13 @@ static void ov107_02249258 (UnkStruct_ov107_02246170 * param0) if (param0->unk_0F_1 == 1) { param0->unk_0F_1 = 0; - v0 = (Window *)sub_02001504(param0->unk_138, 18); + v0 = (Window *)ListMenu_GetAttribute(param0->unk_138, 18); - Window_Clear(v0, 1); + Window_EraseStandardFrame(v0, 1); Window_FillTilemap(v0, 0); Window_ClearAndScheduleCopyToVRAM(v0); - sub_02013A3C(param0->unk_13C); - sub_02001384(param0->unk_138, NULL, NULL); + StringList_Free(param0->unk_13C); + ListMenu_Free(param0->unk_138, NULL, NULL); } return; diff --git a/src/overlay107/ov107_02249604.c b/src/overlay107/ov107_02249604.c index 839f1f9d5d..e1d3140de3 100644 --- a/src/overlay107/ov107_02249604.c +++ b/src/overlay107/ov107_02249604.c @@ -45,7 +45,7 @@ void ov107_02249604(UnkStruct_ov107_02249954 *param0, Party *param1, u8 param2) NARC *v1; Pokemon *v2; - sub_0201DBEC(32, 100); + VRAMTransferManager_New(32, 100); ov107_02249A3C(); NNS_G2dInitOamManagerModule(); diff --git a/src/overlay107/ov107_02249D14.c b/src/overlay107/ov107_02249D14.c index c3f92c9466..d392d2ef86 100644 --- a/src/overlay107/ov107_02249D14.c +++ b/src/overlay107/ov107_02249D14.c @@ -4,7 +4,7 @@ #include #include "bg_window.h" -#include "unk_0200DA60.h" +#include "render_window.h" typedef struct { const WindowTemplate *unk_00; @@ -85,17 +85,17 @@ void ov107_02249D5C(Window *param0, u8 param1) void ov107_02249D84(BgConfig *param0, Window *param1) { - sub_0200DAA4(param0, Window_GetBgLayer(param1), (1024 - 9), 11, 0, 100); - Window_Show(param1, 1, (1024 - 9), 11); + LoadStandardWindowGraphics(param0, Window_GetBgLayer(param1), (1024 - 9), 11, 0, 100); + Window_DrawStandardFrame(param1, 1, (1024 - 9), 11); return; } void ov107_02249DBC(Window *param0, int param1) { - sub_0200DD0C(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 100); + LoadMessageBoxGraphics(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 100); Window_FillTilemap(param0, 15); - sub_0200E060(param0, 1, ((1024 - 9) - (18 + 12)), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 1, ((1024 - 9) - (18 + 12)), 10); Window_ScheduleCopyToVRAM(param0); return; diff --git a/src/overlay108/ov108_02241AE0.c b/src/overlay108/ov108_02241AE0.c index c5107ec807..60e610bdda 100644 --- a/src/overlay108/ov108_02241AE0.c +++ b/src/overlay108/ov108_02241AE0.c @@ -3,14 +3,10 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_020304A0_decl.h" #include "struct_decls/struct_020305B8_decl.h" #include "struct_decls/struct_0203068C_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02099F80.h" #include "overlay104/ov104_0223BCBC.h" @@ -32,6 +28,7 @@ #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" @@ -41,6 +38,7 @@ #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "touch_screen.h" #include "trainer_info.h" @@ -194,9 +192,9 @@ struct UnkStruct_ov108_02241DB0_t { u16 unk_80[8]; BgConfig *unk_90; Window unk_94[2]; - UnkStruct_02081CF4 unk_B4; - UIControlData *unk_C0; - ResourceMetadata unk_C4[2]; + MenuTemplate unk_B4; + Menu *unk_C0; + StringList unk_C4[2]; PaletteData *unk_D4; Options *unk_D8; SaveData *unk_DC; @@ -410,7 +408,7 @@ int ov108_02241D70(OverlayManager *param0, int *param1) *(v1->unk_3C4) = v1->unk_0D; - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov108_02242238(v1); OverlayManager_FreeData(param0); SetMainCallback(NULL, NULL); @@ -479,7 +477,7 @@ static BOOL ov108_02241DB0(UnkStruct_ov108_02241DB0 *param0) param0->unk_08++; } } else { - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 103); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 103); param0->unk_08++; } break; @@ -487,7 +485,7 @@ static BOOL ov108_02241DB0(UnkStruct_ov108_02241DB0 *param0) if (ov104_0223C000(param0->unk_09) == 1) { if (param0->unk_0F >= 2) { param0->unk_0F = 0; - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 103); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 103); param0->unk_08++; } } else { @@ -495,7 +493,7 @@ static BOOL ov108_02241DB0(UnkStruct_ov108_02241DB0 *param0) } break; case 9: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -710,11 +708,11 @@ static BOOL ov108_022421F0(UnkStruct_ov108_02241DB0 *param0) switch (param0->unk_08) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 103); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 103); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -1610,7 +1608,7 @@ static BOOL ov108_02242FE8(UnkStruct_ov108_02241DB0 *param0) static void ov108_02243008(UnkStruct_ov108_02241DB0 *param0) { - sub_020057A4(1500, 0); + Sound_StopEffect(1500, 0); Sound_PlayEffect(1508); ov108_022435F4(param0->unk_3BC, 1); diff --git a/src/overlay108/ov108_02243030.c b/src/overlay108/ov108_02243030.c index 2a3d39df23..da8a52213a 100644 --- a/src/overlay108/ov108_02243030.c +++ b/src/overlay108/ov108_02243030.c @@ -43,7 +43,7 @@ void ov108_02243030(UnkStruct_ov108_02243030 *param0, Party *param1, Party *para { int v0; - sub_0201DBEC(32, 103); + VRAMTransferManager_New(32, 103); ov108_022431FC(); NNS_G2dInitOamManagerModule(); diff --git a/src/overlay109/ov109_021D0D80.c b/src/overlay109/ov109_021D0D80.c index e6cbc9da2b..9acc6ef622 100644 --- a/src/overlay109/ov109_021D0D80.c +++ b/src/overlay109/ov109_021D0D80.c @@ -44,6 +44,7 @@ #include "palette.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -54,7 +55,6 @@ #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201D15C.h" @@ -453,7 +453,7 @@ int ov109_021D0D80(OverlayManager *param0, int *param1) v0->unk_24 = Party_GetFromSavedata(v0->unk_CC->unk_14.unk_08); v0->unk_D80 = NARC_ctor(NARC_INDEX_DATA__GURU2, 95); - sub_0201DBEC(8, 95); + VRAMTransferManager_New(8, 95); sub_0201E3D8(); sub_0201E450(4); ov109_021D1C28(v0); @@ -489,7 +489,7 @@ int ov109_021D0D80(OverlayManager *param0, int *param1) ov109_021D3584(v0); ov109_021D379C(v0); ov109_021D3884(v0); - sub_0200F174(0, 1, 1, 0x0, 8, 1, 95); + StartScreenTransition(0, 1, 1, 0x0, 8, 1, 95); return 1; } @@ -513,7 +513,7 @@ int ov109_021D0EB4(OverlayManager *param0, int *param1) ov109_021D1C68(v0); SetMainCallback(NULL, NULL); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); NARC_dtor(v0->unk_D80); OverlayManager_FreeData(param0); Heap_Destroy(95); @@ -560,7 +560,7 @@ static int ov109_021D0F78(UnkStruct_ov109_021D0F70 *param0) static int ov109_021D0F8C(UnkStruct_ov109_021D0F70 *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (CommSys_CurNetId() == 0) { param0->unk_00 = 2; } else { @@ -1372,7 +1372,7 @@ static int ov109_021D1A6C(UnkStruct_ov109_021D0F70 *param0) if (CommTiming_IsSyncState(202)) { ov109_021D3B70(param0, param0->unk_28->unk_0C); sub_02038ED4(¶m0->unk_04); - param0->unk_DC8 = sub_0200E7FC(¶m0->unk_C9C.unk_0C[0], (1 + 9)); + param0->unk_DC8 = Window_AddWaitDial(¶m0->unk_C9C.unk_0C[0], (1 + 9)); param0->unk_00 = 45; } @@ -1386,7 +1386,7 @@ static int ov109_021D1AA8(UnkStruct_ov109_021D0F70 *param0) if (v0) { gCoreSys.inhibitReset = 0; - DeleteWaitDial(param0->unk_DC8); + DestroyWaitDial(param0->unk_DC8); param0->unk_00 = 48; } @@ -1466,7 +1466,7 @@ static int ov109_021D1B8C(UnkStruct_ov109_021D0F70 *param0) static int ov109_021D1BA4(UnkStruct_ov109_021D0F70 *param0) { - sub_0200F174(2, 0, 0, 0x0, 8, 1, 95); + StartScreenTransition(2, 0, 0, 0x0, 8, 1, 95); if (param0->unk_1C != sub_020041FC()) { sub_02004550(4, param0->unk_1C, 1); @@ -1478,7 +1478,7 @@ static int ov109_021D1BA4(UnkStruct_ov109_021D0F70 *param0) static int ov109_021D1BE4(UnkStruct_ov109_021D0F70 *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00 = 53; return 1; } @@ -1553,7 +1553,7 @@ static void ov109_021D1C00(void *param0) UnkStruct_ov109_021D0F70 *v0 = param0; sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_D9C); Bg_RunScheduledUpdates(v0->unk_D84); } @@ -2019,9 +2019,9 @@ static void ov109_021D24F8(UnkStruct_ov109_021D0F70 *param0) int v0; UnkStruct_ov109_021D24F8 *v1 = ¶m0->unk_C9C; - sub_0200DAA4(param0->unk_D84, 1, 1, 15, 0, 95); - sub_0200DD0C(param0->unk_D84, 1, (1 + 9), 14, param0->unk_CC->unk_14.unk_04, 95); - PaletteData_LoadBufferFromFileStart(param0->unk_D9C, 38, sub_0200DD08(param0->unk_CC->unk_14.unk_04), 95, 0, 0x20, 14 * 16); + LoadStandardWindowGraphics(param0->unk_D84, 1, 1, 15, 0, 95); + LoadMessageBoxGraphics(param0->unk_D84, 1, (1 + 9), 14, param0->unk_CC->unk_14.unk_04, 95); + PaletteData_LoadBufferFromFileStart(param0->unk_D9C, 38, GetMessageBoxPaletteNARCMember(param0->unk_CC->unk_14.unk_04), 95, 0, 0x20, 14 * 16); PaletteData_LoadBufferFromFileStart(param0->unk_D9C, 14, 7, 95, 0, 0x20, 15 * 16); v1->unk_04 = MessageLoader_Init(0, 26, 376, 95); @@ -2067,7 +2067,7 @@ static void ov109_021D2634(UnkStruct_ov109_021D0F70 *param0, u32 param1) Window *v1 = &v0->unk_0C[0]; Window_FillTilemap(v1, 15); - sub_0200E060(v1, 1, (1 + 9), 14); + Window_DrawMessageBoxWithScrollCursor(v1, 1, (1 + 9), 14); Window_FillTilemap(v1, 15); MessageLoader_GetStrbuf(v0->unk_04, param1, v0->unk_6C); Text_AddPrinterWithParams(v1, FONT_MESSAGE, v0->unk_6C, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); @@ -2088,7 +2088,7 @@ static void ov109_021D268C(UnkStruct_ov109_021D0F70 *param0, u32 param1, const T MessageLoader_GetStrbuf(v1->unk_04, param1, v0); StringTemplate_Format(v1->unk_08, v1->unk_6C, v0); Strbuf_Free(v0); - sub_0200E060(v2, 1, (1 + 9), 14); + Window_DrawMessageBoxWithScrollCursor(v2, 1, (1 + 9), 14); Window_FillTilemap(v2, 15); Text_AddPrinterWithParams(v2, FONT_MESSAGE, v1->unk_6C, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); Window_ScheduleCopyToVRAM(v2); @@ -2107,7 +2107,7 @@ static void ov109_021D2714(UnkStruct_ov109_021D0F70 *param0, u32 param1, u32 par MessageLoader_GetStrbuf(v1->unk_04, param1, v0); StringTemplate_Format(v1->unk_08, v1->unk_6C, v0); Strbuf_Free(v0); - sub_0200E060(v2, 1, (1 + 9), 14); + Window_DrawMessageBoxWithScrollCursor(v2, 1, (1 + 9), 14); Window_FillTilemap(v2, 15); Text_AddPrinterWithParams(v2, FONT_MESSAGE, v1->unk_6C, 0, 0, TEXT_SPEED_NO_TRANSFER, NULL); Window_ScheduleCopyToVRAM(v2); @@ -2118,7 +2118,7 @@ static void ov109_021D2788(UnkStruct_ov109_021D0F70 *param0) UnkStruct_ov109_021D24F8 *v0 = ¶m0->unk_C9C; Window *v1 = &v0->unk_0C[0]; - sub_0200E084(v1, 1); + Window_EraseMessageBox(v1, 1); Window_FillTilemap(v1, 0); Window_ScheduleCopyToVRAM(v1); } @@ -2151,7 +2151,7 @@ static void ov109_021D2820(UnkStruct_ov109_021D0F70 *param0, Strbuf *param1, int { UnkStruct_ov109_021D24F8 *v0 = ¶m0->unk_C9C; Window *v1 = &v0->unk_1C[param2]; - Window_Show(v1, 1, 1, 14); + Window_DrawStandardFrame(v1, 1, 1, 14); Window_FillTilemap(v1, 15); Text_AddPrinterWithParamsAndColor(v1, FONT_SYSTEM, param1, Font_CalcCenterAlignment(FONT_SYSTEM, param1, 0, 8 * 8), 0, TEXT_SPEED_NO_TRANSFER, param3, NULL); Window_ScheduleCopyToVRAM(v1); @@ -2173,7 +2173,7 @@ static void ov109_021D28A0(UnkStruct_ov109_021D0F70 *param0, int param1) UnkStruct_ov109_021D24F8 *v0 = ¶m0->unk_C9C; Window *v1 = &v0->unk_1C[param1]; - sub_0200E084(v1, 1); + Window_EraseMessageBox(v1, 1); Window_FillTilemap(v1, 0); Window_ScheduleCopyToVRAM(v1); } diff --git a/src/overlay109/ov109_021D3D50.c b/src/overlay109/ov109_021D3D50.c index 1b17c9470b..2e55eefff8 100644 --- a/src/overlay109/ov109_021D3D50.c +++ b/src/overlay109/ov109_021D3D50.c @@ -26,10 +26,12 @@ #include "gx_layers.h" #include "heap.h" #include "journal.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "narc.h" #include "overlay_manager.h" +#include "render_window.h" #include "savedata.h" #include "sprite_resource.h" #include "strbuf.h" @@ -38,13 +40,11 @@ #include "sys_task_manager.h" #include "text.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" #include "unk_0201D15C.h" @@ -197,7 +197,7 @@ int ov109_021D3D50(OverlayManager *param0, int *param1) SetAutorepeat(4, 8); ov109_021D40D0(); ov109_021D40F0(v0->unk_14); - sub_0200F174(0, 17, 17, 0x0, 16, 1, 95); + StartScreenTransition(0, 17, 17, 0x0, 16, 1, 95); ov109_021D4300(v0, v1); SetMainCallback(ov109_021D40A8, v0); ov109_021D41F8(v0, v1); @@ -237,7 +237,7 @@ int ov109_021D3EB0(OverlayManager *param0, int *param1) switch (v0->unk_00) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_00 = 1; if (CommSys_CurNetId() != 0) { @@ -277,7 +277,7 @@ int ov109_021D3EB0(OverlayManager *param0, int *param1) break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } @@ -574,8 +574,8 @@ static void ov109_021D4300(UnkStruct_ov109_021D5140 *param0, NARC *param1) Graphics_LoadTilemapToBgLayer(12, 11, v0, 6, 0, 0, 1, 95); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 2, v0, 1, 0, 32 * 8 * 0x20, 1, 95); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 3, v0, 1, 0, 32 * 24 * 2, 1, 95); - sub_0200DD0C(v0, 0, 1, 10, Options_Frame(param0->unk_0C->unk_14.unk_10), 95); - sub_0200DAA4(v0, 0, 1 + (18 + 12), 11, 0, 95); + LoadMessageBoxGraphics(v0, 0, 1, 10, Options_Frame(param0->unk_0C->unk_14.unk_10), 95); + LoadStandardWindowGraphics(v0, 0, 1 + (18 + 12), 11, 0, 95); } static void ov109_021D43EC(void) @@ -838,7 +838,7 @@ static const WindowTemplate Unk_ov109_021D5D94 = { static int ov109_021D4950(UnkStruct_ov109_021D5140 *param0, int param1) { - param0->unk_394 = sub_02002100(param0->unk_14, &Unk_ov109_021D5D94, (1 + (18 + 12)), 11, 95); + param0->unk_394 = Menu_MakeYesNoChoice(param0->unk_14, &Unk_ov109_021D5D94, (1 + (18 + 12)), 11, 95); param0->unk_3B8 = 5; ov109_021D48D0(param0); @@ -875,7 +875,7 @@ static int ov109_021D4980(UnkStruct_ov109_021D5140 *param0, int param1) return param1; } - v1 = sub_02002114(param0->unk_394, 95); + v1 = Menu_ProcessInputAndHandleExit(param0->unk_394, 95); if (v1 != 0xffffffff) { if (v1 == 0xfffffffe) { @@ -962,7 +962,7 @@ static int ov109_021D4B44(UnkStruct_ov109_021D5140 *param0, int param1) static int ov109_021D4B64(UnkStruct_ov109_021D5140 *param0, int param1) { - param0->unk_394 = sub_02002100(param0->unk_14, &Unk_ov109_021D5D94, (1 + (18 + 12)), 11, 95); + param0->unk_394 = Menu_MakeYesNoChoice(param0->unk_14, &Unk_ov109_021D5D94, (1 + (18 + 12)), 11, 95); param0->unk_3B8 = 23; ov109_021D48D0(param0); @@ -984,7 +984,7 @@ static int ov109_021D4B94(UnkStruct_ov109_021D5140 *param0, int param1) return param1; } - v1 = sub_02002114(param0->unk_394, 95); + v1 = Menu_ProcessInputAndHandleExit(param0->unk_394, 95); if (v1 != 0xffffffff) { if (v1 == 0xfffffffe) { @@ -1073,7 +1073,7 @@ static int ov109_021D4D20(UnkStruct_ov109_021D5140 *param0, int param1) } if (sub_02038EDC(param0->unk_0C->unk_14.unk_08, 2, ¶m0->unk_414)) { - sub_020057A4(1624, 8); + Sound_StopEffect(1624, 8); ov109_021D55A8(param0, 13, 0); ov109_021D48EC(param0, 29); @@ -1112,7 +1112,7 @@ static int ov109_021D4D9C(UnkStruct_ov109_021D5140 *param0, int param1) static int ov109_021D4DBC(UnkStruct_ov109_021D5140 *param0, int param1) { if (++param0->unk_3C4 > 60) { - sub_0200F174(0, 16, 16, 0x0, 16, 1, 95); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 95); param1 = 3; } @@ -1122,7 +1122,7 @@ static int ov109_021D4DBC(UnkStruct_ov109_021D5140 *param0, int param1) static int ov109_021D4DF8(UnkStruct_ov109_021D5140 *param0, int param1) { - param0->unk_394 = sub_02002100(param0->unk_14, &Unk_ov109_021D5D94, (1 + (18 + 12)), 11, 95); + param0->unk_394 = Menu_MakeYesNoChoice(param0->unk_14, &Unk_ov109_021D5D94, (1 + (18 + 12)), 11, 95); param0->unk_3B8 = 12; ov109_021D48D0(param0); @@ -1142,7 +1142,7 @@ static int ov109_021D4E28(UnkStruct_ov109_021D5140 *param0, int param1) return param1; } - v0 = sub_02002114(param0->unk_394, 95); + v0 = Menu_ProcessInputAndHandleExit(param0->unk_394, 95); if (v0 != 0xffffffff) { if (v0 == 0xfffffffe) { @@ -1206,7 +1206,7 @@ static int ov109_021D4F6C(UnkStruct_ov109_021D5140 *param0, int param1) { if (CommTiming_IsSyncState(202)) { CommMan_SetErrorHandling(0, 0); - sub_0200F174(0, 16, 16, 0x0, 16, 1, 95); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 95); param1 = 3; } @@ -1297,7 +1297,7 @@ static int ov109_021D5098(UnkStruct_ov109_021D5140 *param0, int param1) static int ov109_021D510C(UnkStruct_ov109_021D5140 *param0, int param1) { sub_0205BEA8(12); - sub_0200F174(0, 16, 16, 0x0, 16, 1, 95); + StartScreenTransition(0, 16, 16, 0x0, 16, 1, 95); param0->unk_08 = 1; param1 = 3; @@ -1314,7 +1314,7 @@ void ov109_021D5140(UnkStruct_ov109_021D5140 *param0, int param1, u8 param2) break; case 13: if (param0->unk_394 != NULL) { - sub_02002154(param0->unk_394, 95); + Menu_DestroyForExit(param0->unk_394, 95); param0->unk_394 = NULL; } @@ -1327,7 +1327,7 @@ void ov109_021D5140(UnkStruct_ov109_021D5140 *param0, int param1, u8 param2) ov109_021D55A8(param0, 12, 0); if (param0->unk_394 != NULL) { - sub_02002154(param0->unk_394, 95); + Menu_DestroyForExit(param0->unk_394, 95); param0->unk_394 = NULL; } @@ -1344,7 +1344,7 @@ void ov109_021D5140(UnkStruct_ov109_021D5140 *param0, int param1, u8 param2) } if (param0->unk_394 != NULL) { - sub_02002154(param0->unk_394, 95); + Menu_DestroyForExit(param0->unk_394, 95); param0->unk_394 = NULL; } @@ -1362,7 +1362,7 @@ void ov109_021D5140(UnkStruct_ov109_021D5140 *param0, int param1, u8 param2) } if (param0->unk_394 != NULL) { - sub_02002154(param0->unk_394, 95); + Menu_DestroyForExit(param0->unk_394, 95); param0->unk_394 = NULL; } @@ -1573,7 +1573,7 @@ static void ov109_021D55A8(UnkStruct_ov109_021D5140 *param0, int param1, int par StringTemplate_Format(param0->unk_34, param0->unk_54, v0); Strbuf_Free(v0); Window_FillTilemap(¶m0->unk_35C, 0xf0f); - sub_0200E060(¶m0->unk_35C, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_35C, 0, 1, 10); if (param2 == 0) { param0->unk_5C = Text_AddPrinterWithParams(¶m0->unk_35C, FONT_MESSAGE, param0->unk_54, 0, 0, ov109_021D5854(param0), NULL); @@ -1598,7 +1598,7 @@ static int ov109_021D5638(int param0) static void ov109_021D5658(UnkStruct_ov109_021D5140 *param0) { - sub_0200E084(¶m0->unk_35C, 0); + Window_EraseMessageBox(¶m0->unk_35C, 0); } static void ov109_021D5668(UnkStruct_ov109_021D5140 *param0) @@ -1745,7 +1745,7 @@ static int ov109_021D58AC(UnkStruct_ov109_021D5140 *param0, int param1) ov109_021D5858(param0, -1); if (param0->unk_394 != NULL) { - sub_02002154(param0->unk_394, 95); + Menu_DestroyForExit(param0->unk_394, 95); param0->unk_394 = NULL; } return 2; diff --git a/src/overlay110/ov110_021D0D80.c b/src/overlay110/ov110_021D0D80.c index 0e88d91c31..a04d7d3446 100644 --- a/src/overlay110/ov110_021D0D80.c +++ b/src/overlay110/ov110_021D0D80.c @@ -194,12 +194,12 @@ static BOOL ov110_021D0F78 (UnkStruct_ov110_021D0F78 * param0) param0->unk_04++; break; case 1: - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 114); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 114); ov110_021D140C(param0); param0->unk_04++; break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -233,11 +233,11 @@ static BOOL ov110_021D1000 (UnkStruct_ov110_021D0F78 * param0) switch (param0->unk_04) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 114); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 114); param0->unk_04++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } diff --git a/src/overlay111/ov111_021D0D80.c b/src/overlay111/ov111_021D0D80.c index 393ee36d27..647028bf44 100644 --- a/src/overlay111/ov111_021D0D80.c +++ b/src/overlay111/ov111_021D0D80.c @@ -29,6 +29,7 @@ #include "narc.h" #include "overlay_manager.h" #include "palette.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" @@ -39,7 +40,6 @@ #include "unk_02005474.h" #include "unk_0200A784.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0201567C.h" #include "unk_02015920.h" @@ -428,7 +428,7 @@ int ov111_021D0F40(OverlayManager *param0, int *param1) sub_0201E530(); *(v1->unk_3D8) = v1->unk_0C; - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov111_021D1C0C(v1); @@ -443,11 +443,11 @@ static BOOL ov111_021D0F7C(UnkStruct_ov111_021D0F7C *param0) { switch (param0->unk_08) { case 0: - sub_0200F174(0, 1, 1, 0x0, 6, 1 * 3, 115); + StartScreenTransition(0, 1, 1, 0x0, 6, 1 * 3, 115); param0->unk_08++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_0E = 0; return 1; } @@ -529,7 +529,7 @@ static BOOL ov111_021D10B8(UnkStruct_ov111_021D0F7C *param0) param0->unk_0E++; TouchScreen_GetHoldState(&v0, &v1); - sub_0200E084(¶m0->unk_5C[15], 0); + Window_EraseMessageBox(¶m0->unk_5C[15], 0); GXLayers_EngineBToggleLayers((GX_PLANEMASK_BG0), 0); param0->unk_08 = 2; } @@ -763,7 +763,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) } if (ov111_021D2BBC(param0) == 1) { - sub_020057A4(1358, 0); + Sound_StopEffect(1358, 0); ov111_021D345C(param0->unk_3A4, 1); param0->unk_3DC[param0->unk_0E] = param0->unk_3CE[param0->unk_40B]; @@ -786,7 +786,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) } if (param0->unk_40D >= 3) { - sub_020057A4(1358, 0); + Sound_StopEffect(1358, 0); param0->unk_0F = 60; ov111_021D345C(param0->unk_3A4, 1); ov111_021D25BC(param0); @@ -794,7 +794,7 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) return 0; } } else { - sub_020057A4(1358, 0); + Sound_StopEffect(1358, 0); } if (param0->unk_40C_0 == 1) { @@ -889,14 +889,14 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) if (v2 == 1) { ov111_021D350C(param0->unk_3A0, 0); - Window_Clear(¶m0->unk_5C[0], 0); + Window_EraseStandardFrame(¶m0->unk_5C[0], 0); Window_ClearAndCopyToVRAM(¶m0->unk_5C[0]); ov111_021D2E20(param0); ov111_021D1FB4(param0); return 1; } else if (v2 == 2) { ov111_021D350C(param0->unk_3A0, 0); - Window_Clear(¶m0->unk_5C[0], 0); + Window_EraseStandardFrame(¶m0->unk_5C[0], 0); Window_ClearAndCopyToVRAM(¶m0->unk_5C[0]); ov111_021D1FB4(param0); param0->unk_08 = 11; @@ -907,14 +907,14 @@ static BOOL ov111_021D1508(UnkStruct_ov111_021D0F7C *param0) if (v2 == 1) { ov111_021D350C(param0->unk_3A0, 0); - Window_Clear(¶m0->unk_5C[0], 0); + Window_EraseStandardFrame(¶m0->unk_5C[0], 0); Window_ClearAndCopyToVRAM(¶m0->unk_5C[0]); ov111_021D2E18(param0); ov111_021D1FB4(param0); return 1; } else if (v2 == 2) { ov111_021D350C(param0->unk_3A0, 0); - Window_Clear(¶m0->unk_5C[0], 0); + Window_EraseStandardFrame(¶m0->unk_5C[0], 0); Window_ClearAndCopyToVRAM(¶m0->unk_5C[0]); ov111_021D1FB4(param0); param0->unk_08 = 11; @@ -997,13 +997,13 @@ static BOOL ov111_021D1A88(UnkStruct_ov111_021D0F7C *param0) param0->unk_0D--; if (param0->unk_0D == 0) { - sub_0200E084(¶m0->unk_5C[0], 0); - sub_0200F174(0, 0, 0, 0x0, 6, 1, 115); + Window_EraseMessageBox(¶m0->unk_5C[0], 0); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 115); param0->unk_08++; } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; diff --git a/src/overlay111/ov111_021D2F80.c b/src/overlay111/ov111_021D2F80.c index 15381a43b8..01bb6c9167 100644 --- a/src/overlay111/ov111_021D2F80.c +++ b/src/overlay111/ov111_021D2F80.c @@ -39,7 +39,7 @@ void ov111_021D2F80(UnkStruct_ov111_021D2F80 *param0) int v0; NARC *v1; - sub_0201DBEC(32, 115); + VRAMTransferManager_New(32, 115); ov111_021D3378(); NNS_G2dInitOamManagerModule(); diff --git a/src/overlay111/ov111_021D3548.c b/src/overlay111/ov111_021D3548.c index c4e1301ad5..50152d1225 100644 --- a/src/overlay111/ov111_021D3548.c +++ b/src/overlay111/ov111_021D3548.c @@ -4,7 +4,7 @@ #include #include "bg_window.h" -#include "unk_0200DA60.h" +#include "render_window.h" static const WindowTemplate Unk_ov111_021D38B8[] = { { 0x2, 0x2, 0x1, 0x1B, 0x4, 0xC, 0x1 }, @@ -56,17 +56,17 @@ void ov111_021D3578(Window *param0) void ov111_021D3594(BgConfig *param0, Window *param1) { - sub_0200DAA4(param0, 2, (1024 - 9), 11, 0, 115); - Window_Show(param1, 1, (1024 - 9), 11); + LoadStandardWindowGraphics(param0, 2, (1024 - 9), 11, 0, 115); + Window_DrawStandardFrame(param1, 1, (1024 - 9), 11); return; } void ov111_021D35C0(Window *param0, int param1) { - sub_0200DD0C(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 115); + LoadMessageBoxGraphics(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, 115); Window_FillTilemap(param0, 15); - sub_0200E060(param0, 0, ((1024 - 9) - (18 + 12)), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 0, ((1024 - 9) - (18 + 12)), 10); return; } diff --git a/src/overlay112/ov112_0225C700.c b/src/overlay112/ov112_0225C700.c index 09da2f3f83..f56c7e7f68 100644 --- a/src/overlay112/ov112_0225C700.c +++ b/src/overlay112/ov112_0225C700.c @@ -360,12 +360,12 @@ int ov112_0225C7C4(OverlayManager *param0, int *param1) switch (*param1) { case 0: - sub_0200F174(0, 1, 1, 0x0, 6, 1, 107); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 107); ov66_0222E31C(v1->unk_08, 1); (*param1)++; break; case 1: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { (*param1)++; @@ -398,11 +398,11 @@ int ov112_0225C7C4(OverlayManager *param0, int *param1) } break; case 3: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 107); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 107); (*param1)++; break; case 4: - v2 = ScreenWipe_Done(); + v2 = IsScreenTransitionDone(); if (v2 == 1) { return 1; @@ -459,7 +459,7 @@ static void ov112_0225C9BC(UnkStruct_ov112_0225C9BC *param0, u32 param1) { param0->unk_1A4 = NARC_ctor(NARC_INDEX_GRAPHIC__LOBBY_NEWS, param1); - sub_0201DBEC(48, param1); + VRAMTransferManager_New(48, param1); GXLayers_SetBanks(&Unk_ov112_0225D858); ov112_0225CA34(param0, param1); @@ -469,7 +469,7 @@ static void ov112_0225C9BC(UnkStruct_ov112_0225C9BC *param0, u32 param1) static void ov112_0225C9F4(UnkStruct_ov112_0225C9BC *param0) { NARC_dtor(param0->unk_1A4); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); ov112_0225CB60(param0); ov112_0225CC38(param0); diff --git a/src/overlay113/ov113_0225C700.c b/src/overlay113/ov113_0225C700.c index 75798cf1e1..75cb7705a4 100644 --- a/src/overlay113/ov113_0225C700.c +++ b/src/overlay113/ov113_0225C700.c @@ -55,6 +55,7 @@ #include "party.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" @@ -65,7 +66,6 @@ #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_02015920.h" @@ -380,7 +380,7 @@ int ov113_0225C700(OverlayManager *param0, int *param1) v0->unk_08 = BgConfig_New(118); - sub_0201DBEC(64, 118); + VRAMTransferManager_New(64, 118); SetAutorepeat(4, 8); ov113_0225CF58(v0->unk_08); @@ -423,7 +423,7 @@ int ov113_0225C700(OverlayManager *param0, int *param1) v0->unk_24 = sub_02015920(118); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 118); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 118); if (v0->unk_00->unk_00 != NULL) { ov66_0222E31C(v0->unk_00->unk_00, 1); @@ -471,7 +471,7 @@ int ov113_0225CA04(OverlayManager *param0, int *param1) (*param1)++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0->unk_9BC = 1; (*param1)++; } @@ -506,7 +506,7 @@ int ov113_0225CA04(OverlayManager *param0, int *param1) break; case 3: Window_FillTilemap(&v0->unk_B4, 0xf); - sub_0200E060(&v0->unk_B4, 0, 1, 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_B4, 0, 1, 14); MessageLoader_GetStrbuf(v0->unk_30, 2, v0->unk_C4); v0->unk_C8 = Text_AddPrinterWithParams(&v0->unk_B4, FONT_MESSAGE, v0->unk_C4, 0, 0, Options_TextFrameDelay(SaveData_Options(v0->unk_04)), NULL); (*param1)++; @@ -538,7 +538,7 @@ int ov113_0225CA04(OverlayManager *param0, int *param1) case 1: sub_02015A54(v0->unk_24); v0->unk_28 = 0; - sub_0200E084(&v0->unk_B4, 0); + Window_EraseMessageBox(&v0->unk_B4, 0); v0->unk_168.unk_00 = 0; v0->unk_9BC = 3; *param1 = 9; @@ -546,7 +546,7 @@ int ov113_0225CA04(OverlayManager *param0, int *param1) case 2: sub_02015A54(v0->unk_24); v0->unk_28 = 0; - sub_0200E084(&v0->unk_B4, 0); + Window_EraseMessageBox(&v0->unk_B4, 0); PaletteData_Blend(v0->unk_0C, 0, (0 * 16 + 9), 1, 0, 0x0); PaletteData_Blend(v0->unk_0C, 2, v0->unk_921 * 16, 16, 0, 0x0); *param1 = 2; @@ -556,7 +556,7 @@ int ov113_0225CA04(OverlayManager *param0, int *param1) break; case 6: Window_FillTilemap(&v0->unk_B4, 0xf); - sub_0200E060(&v0->unk_B4, 0, 1, 14); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_B4, 0, 1, 14); MessageLoader_GetStrbuf(v0->unk_30, 3, v0->unk_C4); v0->unk_C8 = Text_AddPrinterWithParams(&v0->unk_B4, FONT_MESSAGE, v0->unk_C4, 0, 0, Options_TextFrameDelay(SaveData_Options(v0->unk_04)), NULL); (*param1)++; @@ -574,15 +574,15 @@ int ov113_0225CA04(OverlayManager *param0, int *param1) } break; case 9: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { sub_0200F2C0(); } - sub_0200F174(0, 0, 0, 0x0, 6, 1, 118); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 118); (*param1)++; break; case 10: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { (*param1)++; } break; @@ -661,7 +661,7 @@ int ov113_0225CDFC(OverlayManager *param0, int *param1) NARC_dtor(v0->unk_164); SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_0201E530(); RenderControlFlags_SetCanABSpeedUpPrint(0); RenderControlFlags_SetAutoScrollFlags(0); @@ -692,7 +692,7 @@ static void ov113_0225CF18(void *param0) ov113_0225E65C(&v0->unk_194, v0->unk_9BC); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_0C); Bg_RunScheduledUpdates(v0->unk_08); @@ -911,8 +911,8 @@ static void ov113_0225D160(UnkStruct_ov113_0225DBCC *param0, NARC *param1) int v2; v2 = Options_Frame(SaveData_Options(param0->unk_04)); - PaletteData_LoadBufferFromFileStart(param0->unk_0C, 38, sub_0200DD08(v2), 118, 0, 0x20, 14 * 16); - sub_0200DD0C(param0->unk_08, 1, 1, 14, v2, 118); + PaletteData_LoadBufferFromFileStart(param0->unk_0C, 38, GetMessageBoxPaletteNARCMember(v2), 118, 0, 0x20, 14 * 16); + LoadMessageBoxGraphics(param0->unk_08, 1, 1, 14, v2, 118); PaletteData_LoadBufferFromFileStart(param0->unk_0C, 14, 6, 118, 0, 0x20, 13 * 16); if (param0->unk_00->unk_04 == 0) { diff --git a/src/overlay114/ov114_0225C700.c b/src/overlay114/ov114_0225C700.c index 261f9928d0..da2de276fa 100644 --- a/src/overlay114/ov114_0225C700.c +++ b/src/overlay114/ov114_0225C700.c @@ -31,6 +31,7 @@ #include "heap.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "sprite_resource.h" @@ -45,7 +46,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015920.h" #include "unk_02017728.h" @@ -975,7 +975,7 @@ void ov114_0225C904(UnkStruct_ov114_0225E854 *param0) G2_BlendNone(); G2S_BlendNone(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); Heap_FreeToHeap(param0); } @@ -1526,8 +1526,8 @@ static void ov114_0225D290(UnkStruct_ov114_0225D338 *param0, UnkStruct_ov114_022 u8 v3; sub_020959F4(1); - sub_0200DD0C(param1->unk_00, 2, 1, 13, v0, param4); - sub_0200DD0C(param1->unk_00, 4, 1, 13, v0, param4); + LoadMessageBoxGraphics(param1->unk_00, 2, 1, 13, v0, param4); + LoadMessageBoxGraphics(param1->unk_00, 4, 1, 13, v0, param4); for (v2 = 0; v2 < 2; v2++) { if (v2 == 0) { @@ -1579,7 +1579,7 @@ static void ov114_0225D368(UnkStruct_ov114_0225D338 *param0, UnkStruct_ov114_022 ov114_0225D474(param0, param3); Window_FillTilemap(¶m0->unk_00[param3], 15); param0->unk_20[param3] = ov114_0225D218(param1, param2, ¶m0->unk_00[param3], param0->unk_24[param3], TEXT_SPEED_FAST); - sub_0200E060(¶m0->unk_00[param3], 1, 1, 13); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_00[param3], 1, 1, 13); Window_ScheduleCopyToVRAM(¶m0->unk_00[param3]); } @@ -1591,7 +1591,7 @@ static void ov114_0225D400(UnkStruct_ov114_0225D338 *param0, u32 param1) Text_RemovePrinter(param0->unk_20[param1]); } - sub_0200E084(¶m0->unk_00[param1], 1); + Window_EraseMessageBox(¶m0->unk_00[param1], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_00[param1]); } @@ -1611,14 +1611,14 @@ static BOOL ov114_0225D43C(const UnkStruct_ov114_0225D338 *param0, u32 param1) static void ov114_0225D458(UnkStruct_ov114_0225D338 *param0, u32 param1) { if (param0->unk_2C[param1] == NULL) { - param0->unk_2C[param1] = sub_0200E7FC(¶m0->unk_00[param1], 1); + param0->unk_2C[param1] = Window_AddWaitDial(¶m0->unk_00[param1], 1); } } static void ov114_0225D474(UnkStruct_ov114_0225D338 *param0, u32 param1) { if (param0->unk_2C[param1]) { - sub_0200EBC8(param0->unk_2C[param1]); + DestroyWaitDialTaskOnly(param0->unk_2C[param1]); param0->unk_2C[param1] = NULL; } } @@ -1705,13 +1705,13 @@ static void ov114_0225D688(SysTask *param0, void *param1) switch (v0->unk_00) { case 0: - sub_0200F174(3, 1, 1, 0xffff, 6, 1, v0->unk_02); + StartScreenTransition(3, 1, 1, 0xffff, 6, 1, v0->unk_02); ov114_0225E244(&v0->unk_230, &v0->unk_30, v0->unk_02); v0->unk_00++; break; case 1: ov114_0225E31C(&v0->unk_230, &v0->unk_30); - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1 == 1) { v0->unk_00++; @@ -1829,7 +1829,7 @@ static void ov114_0225D688(SysTask *param0, void *param1) } break; case 13: - sub_0200F174(3, 0, 1, 0x0, 6, 1, v0->unk_02); + StartScreenTransition(3, 0, 1, 0x0, 6, 1, v0->unk_02); ov114_0225DA5C(v0); if (v0->unk_08.unk_09 == 0) { @@ -1854,7 +1854,7 @@ static void ov114_0225D688(SysTask *param0, void *param1) break; case 14: ov114_0225DA5C(v0); - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1 == 1) { ov114_0225DFFC(&v0->unk_348); @@ -2493,7 +2493,7 @@ static UnkStruct_ov114_0225E854 *ov114_0225E5A8(const UnkStruct_ov114_0225C76C * v0->unk_02 = param3; ov114_0225E0F8(&v0->unk_34, &v0->unk_0C); - sub_0201DBEC(16, param3); + VRAMTransferManager_New(16, param3); ov114_0225CEF0(&v0->unk_4C, &Unk_ov114_0226014C, Unk_ov114_02260324, 6, param3); ov114_0225CFCC(&v0->unk_A0, 32, 2, 2, param3); @@ -2617,11 +2617,11 @@ static void ov114_0225E874(SysTask *param0, void *param1) } } - sub_0200F174(3, 1, 1, 0xffff, 6, 1, v0->unk_02); + StartScreenTransition(3, 1, 1, 0xffff, 6, 1, v0->unk_02); v0->unk_04++; break; case 1: - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1) { v0->unk_04++; @@ -2854,11 +2854,11 @@ static void ov114_0225E874(SysTask *param0, void *param1) } break; case 17: - sub_0200F174(3, 0, 0, 0x0, 6, 1, v0->unk_02); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, v0->unk_02); v0->unk_04++; break; case 18: - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1) { v0->unk_04 = 21; @@ -2928,11 +2928,11 @@ static void ov114_0225ED40(SysTask *param0, void *param1) } } - sub_0200F174(3, 1, 1, 0xffff, 6, 1, v0->unk_02); + StartScreenTransition(3, 1, 1, 0xffff, 6, 1, v0->unk_02); v0->unk_04++; break; case 1: - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1) { v0->unk_04++; @@ -3094,11 +3094,11 @@ static void ov114_0225ED40(SysTask *param0, void *param1) } break; case 16: - sub_0200F174(3, 0, 0, 0x0, 6, 1, v0->unk_02); + StartScreenTransition(3, 0, 0, 0x0, 6, 1, v0->unk_02); v0->unk_04++; break; case 17: - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1) { v0->unk_04 = 20; @@ -3224,7 +3224,7 @@ static BOOL ov114_0225F27C(UnkStruct_ov114_0225F270 *param0, UnkStruct_ov114_022 switch (param0->unk_00) { case 0: - sub_0200F174(0, 0, 1, 0x0, 6, 1, param4); + StartScreenTransition(0, 0, 1, 0x0, 6, 1, param4); sub_020397C8(0, param4); if (param0->unk_01) { @@ -3234,7 +3234,7 @@ static BOOL ov114_0225F27C(UnkStruct_ov114_0225F270 *param0, UnkStruct_ov114_022 param0->unk_00++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { param0->unk_00++; } break; @@ -3300,11 +3300,11 @@ static BOOL ov114_0225F27C(UnkStruct_ov114_0225F270 *param0, UnkStruct_ov114_022 } break; case 10: - sub_0200F174(4, 0, 0, 0x0, 6, 1, param4); + StartScreenTransition(4, 0, 0, 0x0, 6, 1, param4); param0->unk_00++; break; case 11: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_02039794(); if (param0->unk_01) { diff --git a/src/overlay115/ov115_02260440.c b/src/overlay115/ov115_02260440.c index 67f597d3fc..504971e9bf 100644 --- a/src/overlay115/ov115_02260440.c +++ b/src/overlay115/ov115_02260440.c @@ -92,7 +92,7 @@ int ov115_0226048C(OverlayManager *param0, int *param1) switch (v0->unk_78) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_0200F2C0(); } @@ -143,7 +143,7 @@ int ov115_0226048C(OverlayManager *param0, int *param1) v0->unk_40 = 0; memset(v0->unk_84, 0, sizeof(u8) * 4); - sub_0201DBEC(32, 99); + VRAMTransferManager_New(32, 99); ov115_02265A24(v0); v0->unk_80 = 1; @@ -199,13 +199,13 @@ int ov115_0226048C(OverlayManager *param0, int *param1) break; } - sub_0200F174(0, 27, 27, 0xffff, 6, 1, 99); + StartScreenTransition(0, 27, 27, 0xffff, 6, 1, 99); (*param1)++; break; case 4: ov115_02260DAC(v0->unk_34, 0); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (v0->unk_44 == 0) { v2 = CommSys_SendData(22, NULL, 0); @@ -303,14 +303,14 @@ int ov115_0226048C(OverlayManager *param0, int *param1) } break; case 11: - sub_0200F174(0, 26, 26, 0xffff, 6, 1, 99); + StartScreenTransition(0, 26, 26, 0xffff, 6, 1, 99); ov115_02260F70(v0->unk_34, 1); (*param1)++; break; case 12: ov115_02260F70(v0->unk_34, 1); - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { CommTiming_StartSync(3); (*param1)++; } @@ -333,7 +333,7 @@ int ov115_0226048C(OverlayManager *param0, int *param1) v0->unk_34 = NULL; SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); (*param1)++; break; case 14: { @@ -561,7 +561,7 @@ static void ov115_02260B44(UnkStruct_ov115_0226095C *param0, UnkStruct_ov115_022 } ov115_02260D78(param0->unk_34); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); } if (param1->unk_38) { diff --git a/src/overlay115/ov115_02260CEC.c b/src/overlay115/ov115_02260CEC.c index 3b74523485..23aadbe4aa 100644 --- a/src/overlay115/ov115_02260CEC.c +++ b/src/overlay115/ov115_02260CEC.c @@ -36,6 +36,7 @@ #include "heap.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "string_template.h" @@ -47,7 +48,6 @@ #include "unk_0200A328.h" #include "unk_0200A784.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_02012744.h" #include "unk_0201D15C.h" #include "unk_0201DBEC.h" @@ -1493,7 +1493,7 @@ static void ov115_02261A04(UnkStruct_ov115_022617E8 *param0, UnkStruct_ov115_022 static void ov115_02261A10(UnkStruct_ov115_022617E8 *param0, UnkStruct_ov115_02261ADC *param1) { - Window_Show(¶m0->unk_0C, 0, 1, 4); + Window_DrawStandardFrame(¶m0->unk_0C, 0, 1, 4); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); ov114_0225CB8C(param1->unk_754); @@ -1514,7 +1514,7 @@ static BOOL ov115_02261A3C(UnkStruct_ov115_022617E8 *param0, UnkStruct_ov115_022 static void ov115_02261A54(UnkStruct_ov115_022617E8 *param0, UnkStruct_ov115_02261ADC *param1) { - Window_Clear(¶m0->unk_0C, 1); + Window_EraseStandardFrame(¶m0->unk_0C, 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_0C); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); } @@ -3144,7 +3144,7 @@ static void ov115_0226376C(UnkStruct_ov115_02261ADC *param0, u32 param1) GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG3, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); Font_LoadScreenIndicatorsPalette(0, 5 * 0x20, param1); - sub_0200DAA4(param0->unk_00, 1, 1, 4, 0, param1); + LoadStandardWindowGraphics(param0->unk_00, 1, 1, 4, 0, param1); } static void ov115_02263954(UnkStruct_ov115_02261ADC *param0) diff --git a/src/overlay116/ov116_022604C4.c b/src/overlay116/ov116_022604C4.c index 9f53161123..c40b113eb6 100644 --- a/src/overlay116/ov116_022604C4.c +++ b/src/overlay116/ov116_022604C4.c @@ -64,7 +64,7 @@ static void ov116_022604C4(UnkStruct_ov116_0226139C *param0) ov116_022612CC(param0); SetMainCallback(ov116_02261794, param0); DisableHBlank(); - sub_0201DBEC(32, 106); + VRAMTransferManager_New(32, 106); sub_0200966C(NNS_G2D_VRAM_TYPE_2DMAIN, GX_OBJVRAMMODE_CHAR_1D_128K); sub_02009704(NNS_G2D_VRAM_TYPE_2DMAIN); sub_02039734(); @@ -469,7 +469,7 @@ int ov116_02260CF4(OverlayManager *param0, int *param1) ov116_0226178C(v0, v1, 4, param1); break; case 4: - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); ov116_0226178C(v0, v1, 5, param1); break; case 5: @@ -528,7 +528,7 @@ int ov116_02260CF4(OverlayManager *param0, int *param1) if (v1 == 0) { if (ov116_022617C4(v0) == 1) { if (ov116_02262A74(v0->unk_00) == 0) { - sub_020057A4(1393, 0); + Sound_StopEffect(1393, 0); CommSys_SendData(23, NULL, 0); } } @@ -538,8 +538,8 @@ int ov116_02260CF4(OverlayManager *param0, int *param1) break; case 11: v1 = 1; - sub_020057A4(1395, 0); - sub_020057A4(1393, 0); + Sound_StopEffect(1395, 0); + Sound_StopEffect(1393, 0); ov114_0225CBB0(v0->unk_7C); ov116_0226178C(v0, v1, 12, param1); break; @@ -585,7 +585,7 @@ int ov116_02260CF4(OverlayManager *param0, int *param1) ov116_0226178C(v0, v1, 16, param1); break; case 16: - v1 = ScreenWipe_Done(); + v1 = IsScreenTransitionDone(); if (v1) { ov116_022610FC(v0); @@ -669,7 +669,7 @@ static void ov116_022610FC(UnkStruct_ov116_0226139C *param0) { SetMainCallback(NULL, NULL); DisableHBlank(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); { u32 v0; @@ -1092,7 +1092,7 @@ static void ov116_022616CC(UnkStruct_ov116_0226139C *param0) static BOOL ov116_02261768(int param0) { - sub_0200F174(0, param0, param0, 0, 6, 1, 106); + StartScreenTransition(0, param0, param0, 0, 6, 1, 106); return 1; } @@ -1108,7 +1108,7 @@ static void ov116_02261794(void *param0) UnkStruct_ov116_0226139C *v0 = param0; sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_48.unk_14); Bg_RunScheduledUpdates(v0->unk_48.unk_10); @@ -1134,7 +1134,7 @@ static u32 ov116_022617E4(UnkStruct_ov116_0226139C *param0) { if (ov114_0225CA54(¶m0->unk_84) == 1) { if (param0->unk_48.unk_2C.unk_00 == 0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_0200F2C0(); } diff --git a/src/overlay116/ov116_02261870.c b/src/overlay116/ov116_02261870.c index 214745a87a..24800d2971 100644 --- a/src/overlay116/ov116_02261870.c +++ b/src/overlay116/ov116_02261870.c @@ -23,11 +23,11 @@ #include "message.h" #include "narc.h" #include "palette.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "trainer_info.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0202419C.h" static inline void inline_ov116_02261940(UnkStruct_ov116_0226501C *param0); @@ -408,14 +408,14 @@ void ov116_02261F70(UnkStruct_ov116_02262A8C *param0) MessageLoader_Free(v0); } - Window_Show(¶m0->unk_1FC8, 0, 180, 13); + Window_DrawStandardFrame(¶m0->unk_1FC8, 0, 180, 13); Window_CopyToVRAM(¶m0->unk_1FC8); } void ov116_02262004(UnkStruct_ov116_02262A8C *param0) { if (Window_IsInUse(¶m0->unk_1FC8) == 1) { - Window_Clear(¶m0->unk_1FC8, 1); + Window_EraseStandardFrame(¶m0->unk_1FC8, 1); Window_ClearAndCopyToVRAM(¶m0->unk_1FC8); Window_Remove(¶m0->unk_1FC8); } @@ -562,7 +562,7 @@ void ov116_02262264(UnkStruct_ov116_02262A8C *param0) } if (Window_IsInUse(¶m0->unk_1FD8[v1]) == 1) { - Window_Clear(¶m0->unk_1FD8[v1], 1); + Window_EraseStandardFrame(¶m0->unk_1FD8[v1], 1); Window_ClearAndCopyToVRAM(¶m0->unk_1FD8[v1]); Window_Remove(¶m0->unk_1FD8[v1]); } @@ -835,6 +835,6 @@ void ov116_022628B8(UnkStruct_ov116_0226139C *param0) Graphics_LoadTilemapToBgLayerFromOpenNARC(v6, 10, v2, 2, 0, 0, 0, 106); PaletteData_LoadBufferFromFileStart(v5, 164, 6, 106, 0, 0x20, 0); PaletteData_LoadBufferFromFileStart(v5, 14, 7, 106, 1, 0x20, 14 * 16); - PaletteData_LoadBufferFromFileStart(v5, 38, Window_FramePalette(), 106, 1, 0x20, 13 * 16); - sub_0200DAA4(v2, 7, 180, 13, 0, 106); + PaletteData_LoadBufferFromFileStart(v5, 38, GetStandardWindowPaletteNARCMember(), 106, 1, 0x20, 13 * 16); + LoadStandardWindowGraphics(v2, 7, 180, 13, 0, 106); } diff --git a/src/overlay116/ov116_02262A8C.c b/src/overlay116/ov116_02262A8C.c index 8a05fa408b..04d2fc7c51 100644 --- a/src/overlay116/ov116_02262A8C.c +++ b/src/overlay116/ov116_02262A8C.c @@ -391,7 +391,7 @@ void ov116_02262E50(SysTask *param0, void *param1) v8 = FX32_CONST(48); } - if ((ScreenWipe_Done() == 0) || (v0->unk_78->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v0->unk_78->unk_2C.unk_00 == 1)) { SysTask_Done(param0); Heap_FreeToHeap(v0); return; @@ -516,7 +516,7 @@ void ov116_02263158(SysTask *param0, void *param1) UnkStruct_ov116_02262CB8 *v0 = param1; int v1 = sub_0200D3E0(v0->unk_0C); - if ((ScreenWipe_Done() == 0) || (v0->unk_2C->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v0->unk_2C->unk_2C.unk_00 == 1)) { SysTask_Done(param0); Heap_FreeToHeap(v0); return; @@ -571,7 +571,7 @@ static void ov116_0226323C(SysTask *param0, void *param1) { UnkStruct_ov116_02262D08 *v0 = param1; - if ((ScreenWipe_Done() == 0) || (v0->unk_3C->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v0->unk_3C->unk_2C.unk_00 == 1)) { v0->unk_30 = 0; SysTask_Done(param0); return; @@ -667,7 +667,7 @@ static void ov116_02263434(SysTask *param0, void *param1) UnkStruct_ov116_0226501C *v2 = v1->unk_34; UnkStruct_ov116_0226501C *v3 = v1->unk_38; - if ((ScreenWipe_Done() == 0) || (v1->unk_3C->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_3C->unk_2C.unk_00 == 1)) { ov116_0226192C(v2); ov116_0226192C(v3); diff --git a/src/overlay116/ov116_0226432C.c b/src/overlay116/ov116_0226432C.c index 1c76ae456d..9906752733 100644 --- a/src/overlay116/ov116_0226432C.c +++ b/src/overlay116/ov116_0226432C.c @@ -330,7 +330,7 @@ static void ov116_022647BC(SysTask *param0, void *param1) FX32_CONST(+2) }; - if ((ScreenWipe_Done() == 0) || (v0->unk_A4->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v0->unk_A4->unk_2C.unk_00 == 1)) { for (v1 = 0; v1 < 3; v1++) { sub_0200D0F4(v0->unk_08[v1]); } @@ -424,7 +424,7 @@ static void ov116_022649E4(SysTask *param0, void *param1) UnkStruct_ov116_02264FEC *v0 = param1; UnkStruct_ov116_022649E4 *v1 = v0->unk_00->unk_14; - if ((ScreenWipe_Done() == 0) || (v1->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_2C.unk_00 == 1)) { *v0->unk_10 = 0; SysTask_Done(param0); Heap_FreeToHeap(v0); @@ -829,7 +829,7 @@ static void ov116_0226534C(SysTask *param0, void *param1) UnkStruct_ov116_0226534C *v0 = param1; UnkStruct_ov116_022649E4 *v1 = v0->unk_84; - if ((ScreenWipe_Done() == 0) || (v1->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; @@ -871,7 +871,7 @@ static void ov116_0226534C(SysTask *param0, void *param1) v0->unk_08[2].unk_50[0] = 1; v0->unk_08[3].unk_50[0] = 1; v0->unk_08[4].unk_50[0] = 1; - sub_020057A4(1393, 0); + Sound_StopEffect(1393, 0); } break; } @@ -1156,7 +1156,7 @@ static void ov116_0226591C(SysTask *param0, void *param1) v2 = *v3->unk_0C; - if ((ScreenWipe_Done() == 0) || (v3->unk_30->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v3->unk_30->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; } @@ -1226,7 +1226,7 @@ static void ov116_02265AA4(SysTask *param0, void *param1) fx32 v3, v4; fx32 v5, v6; - if ((ScreenWipe_Done() == 0) || (v0->unk_30->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v0->unk_30->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; } @@ -1491,7 +1491,7 @@ static void ov116_022660A8(SysTask *param0, void *param1) fx32 v4, v5; fx32 v6, v7; - if ((ScreenWipe_Done() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; } @@ -1618,7 +1618,7 @@ static void ov116_0226644C(SysTask *param0, void *param1) fx32 v4, v5; fx32 v6, v7; - if ((ScreenWipe_Done() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; } @@ -1736,7 +1736,7 @@ static void ov116_022667F4(SysTask *param0, void *param1) fx32 v4, v5; fx32 v6, v7; - if ((ScreenWipe_Done() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; } @@ -1882,7 +1882,7 @@ static void ov116_02266BF0(SysTask *param0, void *param1) fx32 v4, v5; fx32 v6, v7; - if ((ScreenWipe_Done() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { + if ((IsScreenTransitionDone() == 0) || (v1->unk_30->unk_2C.unk_00 == 1)) { SysTask_Done(param0); return; } diff --git a/src/overlay117/ov117_02260668.c b/src/overlay117/ov117_02260668.c index f2136bbf9a..f9c8c938d9 100644 --- a/src/overlay117/ov117_02260668.c +++ b/src/overlay117/ov117_02260668.c @@ -38,6 +38,7 @@ #include "overlay_manager.h" #include "palette.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" @@ -47,7 +48,6 @@ #include "unk_02005474.h" #include "unk_020093B4.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_02014000.h" @@ -210,7 +210,7 @@ int ov117_02260668(OverlayManager *param0, int *param1) v0->unk_2C = BgConfig_New(110); - sub_0201DBEC(64, 110); + VRAMTransferManager_New(64, 110); SetAutorepeat(4, 8); ov117_022610D8(v0->unk_2C); sub_0201E3D8(); @@ -258,7 +258,7 @@ int ov117_02260668(OverlayManager *param0, int *param1) sub_02039734(); v0->unk_D4 = ov117_022626B0(v0); - sub_0200F174(0, 27, 27, 0x0, 6, 1, 110); + StartScreenTransition(0, 27, 27, 0x0, 6, 1, 110); v0->unk_94 = SysTask_Start(ov117_02260F7C, v0, 60000); gCoreSys.unk_65 = 1; @@ -300,7 +300,7 @@ int ov117_0226098C(OverlayManager *param0, int *param1) if (v0->unk_00->unk_3D == 1) { switch (v0->unk_00->unk_3E) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_0200F2C0(); } @@ -322,7 +322,7 @@ int ov117_0226098C(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { (*param1)++; } break; @@ -349,7 +349,7 @@ int ov117_0226098C(OverlayManager *param0, int *param1) case 5: if (v0->unk_2FC0 == 1) { ov117_02266150(v0); - sub_0200F174(0, 26, 26, 0x0, 6, 1, 110); + StartScreenTransition(0, 26, 26, 0x0, 6, 1, 110); (*param1)++; } @@ -413,7 +413,7 @@ int ov117_0226098C(OverlayManager *param0, int *param1) } break; case 6: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -462,7 +462,7 @@ int ov117_02260C10(OverlayManager *param0, int *param1) sub_020127BC(v0->unk_90); sub_0200D0B0(v0->unk_24, v0->unk_28); sub_0200C8D4(v0->unk_24); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); PaletteData_FreeBuffer(v0->unk_8C, 0); PaletteData_FreeBuffer(v0->unk_8C, 1); PaletteData_FreeBuffer(v0->unk_8C, 2); @@ -496,7 +496,7 @@ static void ov117_02260DA0(void *param0) ov117_02262950(v0, v0->unk_D4); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_8C); if (v0->unk_1428.unk_2C == 1) { @@ -828,7 +828,7 @@ static void ov117_02261368(UnkStruct_ov117_02261280 *param0) { Strbuf *v0; - Window_Show(¶m0->unk_30[4], 1, ((((((0x8000 - 0x2000) / 32) + (10 * 2)) + (10 * 2)) + (10 * 2)) + (10 * 2)), 6); + Window_DrawStandardFrame(¶m0->unk_30[4], 1, ((((((0x8000 - 0x2000) / 32) + (10 * 2)) + (10 * 2)) + (10 * 2)) + (10 * 2)), 6); v0 = MessageLoader_GetNewStrbuf(param0->unk_80, 3); Text_AddPrinterWithParamsAndColor(¶m0->unk_30[4], FONT_SYSTEM, v0, 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 15), NULL); @@ -1086,7 +1086,7 @@ static void ov117_02261AC8(UnkStruct_ov117_02261280 *param0, NARC *param1) ov117_02264AF0(param0); ov117_02264AB0(param0); - sub_0200DAA4(param0->unk_2C, 4, ((((((0x8000 - 0x2000) / 32) + (10 * 2)) + (10 * 2)) + (10 * 2)) + (10 * 2)), 6, 0, 110); + LoadStandardWindowGraphics(param0->unk_2C, 4, ((((((0x8000 - 0x2000) / 32) + (10 * 2)) + (10 * 2)) + (10 * 2)) + (10 * 2)), 6, 0, 110); PaletteData_LoadBufferFromHardware(param0->unk_8C, 1, 6 * 16, 0x20); PaletteData_FillBufferRange(param0->unk_8C, 1, 2, 0x0, 0, 1); } diff --git a/src/overlay117/ov117_02266498.c b/src/overlay117/ov117_02266498.c index 2eae409e1e..80741ad345 100644 --- a/src/overlay117/ov117_02266498.c +++ b/src/overlay117/ov117_02266498.c @@ -36,7 +36,7 @@ int ov117_022664BC(OverlayManager *param0, int *param1) if (v0->unk_00->unk_3D == 1) { switch (v0->unk_00->unk_3E) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_0200F2C0(); } diff --git a/src/overlay118/ov118_021D0D80.c b/src/overlay118/ov118_021D0D80.c index 40476a5c43..cbb9c90e00 100644 --- a/src/overlay118/ov118_021D0D80.c +++ b/src/overlay118/ov118_021D0D80.c @@ -3,6 +3,8 @@ #include #include +#include "consts/species.h" + #include "struct_decls/struct_02014014_decl.h" #include "struct_defs/struct_0207F248.h" @@ -75,17 +77,17 @@ int ov118_021D0DBC(GameWindowLayout *param0) v0->unk_0C = Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL); switch (v0->unk_0C) { - case 487: + case SPECIES_GIRATINA: Pokemon_SetGiratinaForm(v1); v0->unk_08 = 65; v0->unk_10 = 0; break; - case 492: + case SPECIES_SHAYMIN: Pokemon_SetShayminForm(v1, 1); v0->unk_08 = 35; v0->unk_10 = 1; break; - case 479: + case SPECIES_ROTOM: default: GF_ASSERT(0); break; diff --git a/src/overlay119/ov119_021D0D80.c b/src/overlay119/ov119_021D0D80.c index ebe854c994..57b21668a6 100644 --- a/src/overlay119/ov119_021D0D80.c +++ b/src/overlay119/ov119_021D0D80.c @@ -10,7 +10,6 @@ #include "struct_defs/sprite_animation_frame.h" #include "struct_defs/sprite_template.h" #include "struct_defs/struct_0207C690.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_02099F80.h" #include "overlay104/struct_ov104_022412F4.h" @@ -24,22 +23,23 @@ #include "bg_window.h" #include "camera.h" +#include "font.h" #include "graphics.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "palette.h" #include "pokemon.h" +#include "render_window.h" #include "spl.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_0200762C.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02014000.h" #include "unk_0201DBEC.h" #include "unk_0202419C.h" @@ -242,7 +242,7 @@ void ov119_021D0FD0(void *param0) sub_02008A94(v0->unk_04.unk_38); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_04.unk_04); Bg_RunScheduledUpdates(v0->unk_04.unk_00); @@ -269,22 +269,22 @@ void ov119_021D1004(void) void ov119_021D1028(void) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 71); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 71); } void ov119_021D1048(void) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 71); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 71); } void ov119_021D1068(BgConfig *param0, PaletteData *param1, int param2) { int v0 = 71; - sub_0200DD0C(param0, 1, 20, 15, param2, v0); - PaletteData_LoadBufferFromFileStart(param1, 38, sub_0200DD08(param2), v0, 0, 0x20, 12 * 16); - sub_0200DAA4(param0, 1, (20 + (18 + 12)), 13, 0, v0); - PaletteData_LoadBufferFromFileStart(param1, 38, Window_FramePalette(), v0, 0, 0x20, 13 * 16); + LoadMessageBoxGraphics(param0, 1, 20, 15, param2, v0); + PaletteData_LoadBufferFromFileStart(param1, 38, GetMessageBoxPaletteNARCMember(param2), v0, 0, 0x20, 12 * 16); + LoadStandardWindowGraphics(param0, 1, (20 + (18 + 12)), 13, 0, v0); + PaletteData_LoadBufferFromFileStart(param1, 38, GetStandardWindowPaletteNARCMember(), v0, 0, 0x20, 13 * 16); PaletteData_LoadBufferFromFileStart(param1, 14, 7, v0, 0, 0x20, 14 * 16); } @@ -292,7 +292,7 @@ void ov119_021D10F0(BgConfig *param0, Window *param1, int param2, int param3, in { Window_Init(param1); Window_Add(param0, param1, param2, param3, param4, param5, param6, param8, param7); - sub_0200E060(param1, 1, 20, 12); + Window_DrawMessageBoxWithScrollCursor(param1, 1, 20, 12); Window_FillTilemap(param1, 15); Window_CopyToVRAM(param1); } @@ -329,12 +329,12 @@ int ov119_021D1158(Window *param0, int param1, Pokemon *param2, int param3) void ov119_021D11E4(UnkStruct_ov119_021D0FD0 *param0, BgConfig *param1, Window *param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; Window_Init(param2); Window_Add(param1, param2, param3, param4, param5, param6, param7, param9, param8); - param0->unk_04.unk_44 = sub_02013A04(2, 71); + param0->unk_04.unk_44 = StringList_New(2, 71); { int v1; @@ -343,33 +343,33 @@ void ov119_021D11E4(UnkStruct_ov119_021D0FD0 *param0, BgConfig *param1, Window * for (v1 = 0; v1 < 2; v1++) { v2 = MessageLoader_GetNewStrbuf(v3, 2 + v1); - sub_02013A6C(param0->unk_04.unk_44, v2, v1); + StringList_AddFromStrbuf(param0->unk_04.unk_44, v2, v1); Strbuf_Free(v2); } MessageLoader_Free(v3); } - v0.unk_00 = param0->unk_04.unk_44; - v0.unk_08 = 0; - v0.unk_04 = param2; - v0.unk_09 = 1; - v0.unk_0A = 2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 1; + v0.choices = param0->unk_04.unk_44; + v0.fontID = FONT_SYSTEM; + v0.window = param2; + v0.xSize = 1; + v0.ySize = 2; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = TRUE; - Window_Show(param2, 1, (20 + (18 + 12)), 13); - param0->unk_04.unk_48 = sub_02001B7C(&v0, 8, 0, 0, 71, PAD_BUTTON_B); + Window_DrawStandardFrame(param2, 1, (20 + (18 + 12)), 13); + param0->unk_04.unk_48 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 71, PAD_BUTTON_B); } void ov119_021D12CC(UnkStruct_ov119_021D0FD0 *param0) { - Window_Clear(¶m0->unk_04.unk_14[1], 1); + Window_EraseStandardFrame(¶m0->unk_04.unk_14[1], 1); Window_ClearAndCopyToVRAM(¶m0->unk_04.unk_14[1]); Window_Remove(¶m0->unk_04.unk_14[1]); - sub_02001BC4(param0->unk_04.unk_48, NULL); - sub_02013A3C(param0->unk_04.unk_44); + Menu_Free(param0->unk_04.unk_48, NULL); + StringList_Free(param0->unk_04.unk_44); } void ov119_021D12F8(Window *param0) @@ -766,7 +766,7 @@ void ov119_021D1858(UnkStruct_ov119_021D0FD0 *param0) { int v5 = 0; - Pokemon_SetValue(v2, 76, &v5); + Pokemon_SetValue(v2, MON_DATA_IS_EGG, &v5); } Pokemon_BuildArchivedSprite(&v0, v2, 2); diff --git a/src/overlay119/ov119_021D191C.c b/src/overlay119/ov119_021D191C.c index 740251dd6e..e5f43e08b7 100644 --- a/src/overlay119/ov119_021D191C.c +++ b/src/overlay119/ov119_021D191C.c @@ -11,10 +11,10 @@ #include "cell_actor.h" #include "gx_layers.h" +#include "menu.h" #include "palette.h" #include "pokemon.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200762C.h" @@ -78,7 +78,7 @@ static BOOL ov119_021D1930(UnkStruct_ov119_021D0FD0 *param0) ov119_021D1028(); param0->unk_60++; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_0200569C(); sub_02004550(13, 1141, 1); param0->unk_60++; @@ -176,7 +176,7 @@ static BOOL ov119_021D1930(UnkStruct_ov119_021D0FD0 *param0) param0->unk_60++; break; case 12: { - u32 v9 = sub_02001BE0(param0->unk_04.unk_48); + u32 v9 = Menu_ProcessInput(param0->unk_04.unk_48); switch (v9) { case 0xfffffffe: @@ -207,7 +207,7 @@ static BOOL ov119_021D1930(UnkStruct_ov119_021D0FD0 *param0) ov119_021D1048(); param0->unk_60++; case 16: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_60++; } break; @@ -261,7 +261,7 @@ static BOOL ov119_021D1BD0(UnkStruct_ov119_021D0FD0 *param0) ov119_021D1028(); param0->unk_60++; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_02004550(13, 1141, 1); param0->unk_60++; } @@ -329,7 +329,7 @@ static BOOL ov119_021D1BD0(UnkStruct_ov119_021D0FD0 *param0) param0->unk_60++; break; case 12: { - u32 v5 = sub_02001BE0(param0->unk_04.unk_48); + u32 v5 = Menu_ProcessInput(param0->unk_04.unk_48); switch (v5) { case 0xfffffffe: @@ -360,7 +360,7 @@ static BOOL ov119_021D1BD0(UnkStruct_ov119_021D0FD0 *param0) ov119_021D1048(); param0->unk_60++; case 16: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_60++; } break; diff --git a/src/palette.c b/src/palette.c index a101cd4d32..797c384f20 100644 --- a/src/palette.c +++ b/src/palette.c @@ -11,10 +11,6 @@ #include "sys_task.h" #include "sys_task_manager.h" -#define SLOTS_PER_PALETTE 16 -#define PALETTE_SIZE (SLOTS_PER_PALETTE) -#define PALETTE_SIZE_EXT (SLOTS_PER_PALETTE * 16) - static u8 IsMaskedOn(u16 mask, u16 bit); static void FlagFadedPaletteBuffer(PaletteData *paletteData, u16 bufferID); static void FilterMaskToValidPalettes(int bufferID, PaletteBuffer *buffer, u16 *outMask); diff --git a/src/pokemon.c b/src/pokemon.c index 0c8b5dfd5e..e4cd9b3637 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -271,11 +271,11 @@ static void sub_02073E18(BoxPokemon *boxMon, int monSpecies, int monLevel, int m BoxPokemon_SetValue(boxMon, MON_DATA_PERSONALITY, &monPersonality); // TODO likely should be an enum - if (monOTIDSource == 2) { + if (monOTIDSource == OTID_NOT_SHINY) { do { monOTID = (LCRNG_Next() | (LCRNG_Next() << 16)); } while (Pokemon_InlineIsPersonalityShiny(monOTID, monPersonality)); - } else if (monOTIDSource != 1) { + } else if (monOTIDSource != OTID_SET) { monOTID = 0; } @@ -330,8 +330,7 @@ static void sub_02073E18(BoxPokemon *boxMon, int monSpecies, int monLevel, int m v1 = PokemonPersonalData_GetSpeciesValue(monSpecies, MON_DATA_PERSONAL_ABILITY_1); v2 = PokemonPersonalData_GetSpeciesValue(monSpecies, MON_DATA_PERSONAL_ABILITY_2); - // TODO enum value - if (v2 != 0) { + if (v2 != ABILITY_NONE) { if (monPersonality & 1) { BoxPokemon_SetValue(boxMon, MON_DATA_ABILITY, &v2); } else { @@ -357,10 +356,10 @@ void sub_02074044(Pokemon *mon, u16 monSpecies, u8 monLevel, u8 monIVs, u8 monNa } while (monNature != Pokemon_GetNatureOf(monPersonality)); // TODO monOTIDSource probably an enum? - Pokemon_InitWith(mon, monSpecies, monLevel, monIVs, TRUE, monPersonality, 0, 0); + Pokemon_InitWith(mon, monSpecies, monLevel, monIVs, TRUE, monPersonality, OTID_NOT_SET, 0); } -void sub_02074088(Pokemon *mon, u16 monSpecies, u8 monLevel, u8 monIVs, u8 param4, u8 param5, u8 param6) +void sub_02074088(Pokemon *mon, u16 monSpecies, u8 monLevel, u8 monIVs, u8 gender, u8 param5, u8 param6) { u32 monPersonality; u16 unownLetter; @@ -370,30 +369,23 @@ void sub_02074088(Pokemon *mon, u16 monSpecies, u8 monLevel, u8 monIVs, u8 param do { monPersonality = (LCRNG_Next() | (LCRNG_Next() << 16)); unownLetter = (((monPersonality & 0x3000000) >> 18) | ((monPersonality & 0x30000) >> 12) | ((monPersonality & 0x300) >> 6) | (monPersonality & 0x3)) % 28; - } while (param5 != Pokemon_GetNatureOf(monPersonality) || param4 != Pokemon_GetGenderOf(monSpecies, monPersonality) || unownLetter != param6 - 1); + } while (param5 != Pokemon_GetNatureOf(monPersonality) || gender != Pokemon_GetGenderOf(monSpecies, monPersonality) || unownLetter != param6 - 1); } else { - monPersonality = sub_02074128(monSpecies, param4, param5); + monPersonality = sub_02074128(monSpecies, gender, param5); } - // TODO monOTIDSource probably an enum? - Pokemon_InitWith(mon, monSpecies, monLevel, monIVs, TRUE, monPersonality, 0, 0); + Pokemon_InitWith(mon, monSpecies, monLevel, monIVs, TRUE, monPersonality, OTID_NOT_SET, 0); } -static enum PokemonGenderRatio { - GENDER_ALWAYS_MALE = 0, - GENDER_ALWAYS_FEMALE = 254, - GENDER_UNKNOWN = 255 -}; - u32 sub_02074128(u16 monSpecies, u8 param1, u8 param2) { u8 monGenderChance = PokemonPersonalData_GetSpeciesValue(monSpecies, MON_DATA_PERSONAL_GENDER); u32 result; switch (monGenderChance) { - case GENDER_ALWAYS_MALE: - case GENDER_ALWAYS_FEMALE: - case GENDER_UNKNOWN: + case GENDER_RATIO_MALE_ONLY: + case GENDER_RATIO_FEMALE_ONLY: + case GENDER_RATIO_NO_GENDER: result = param2; break; default: @@ -412,8 +404,7 @@ u32 sub_02074128(u16 monSpecies, u8 param1, u8 param2) void sub_02074158(Pokemon *mon, u16 monSpecies, u8 monLevel, u32 monCombinedIVs, u32 monPersonality) { - // TODO monOTIDSource probably an enum? - Pokemon_InitWith(mon, monSpecies, monLevel, 0, TRUE, monPersonality, 0, 0); + Pokemon_InitWith(mon, monSpecies, monLevel, 0, TRUE, monPersonality, OTID_NOT_SET, 0); Pokemon_SetValue(mon, MON_DATA_COMBINED_IVS, &monCombinedIVs); Pokemon_CalcLevelAndStats(mon); } @@ -2445,11 +2436,11 @@ u8 PokemonPersonalData_GetGenderOf(PokemonPersonalData *monPersonalData, u16 unu u8 monGender = PokemonPersonalData_GetValue(monPersonalData, MON_DATA_PERSONAL_GENDER); switch (monGender) { - case GENDER_ALWAYS_MALE: + case GENDER_RATIO_MALE_ONLY: return GENDER_MALE; - case GENDER_ALWAYS_FEMALE: + case GENDER_RATIO_FEMALE_ONLY: return GENDER_FEMALE; - case GENDER_UNKNOWN: + case GENDER_RATIO_NO_GENDER: return GENDER_NONE; } @@ -3573,7 +3564,7 @@ static u16 BoxPokemon_AddMove(BoxPokemon *boxMon, u16 moveID) BOOL reencrypt = BoxPokemon_EnterDecryptionContext(boxMon); - for (int i = 0; i < 4; i++) { + for (int i = 0; i < LEARNED_MOVES_MAX; i++) { u16 slotMove; if ((slotMove = BoxPokemon_GetValue(boxMon, MON_DATA_MOVE1 + i, NULL)) == 0) { BoxPokemon_SetMoveSlot(boxMon, moveID, i); @@ -3602,9 +3593,9 @@ static void BoxPokemon_ReplaceMove(BoxPokemon *boxMon, u16 moveID) { BOOL reencrypt = BoxPokemon_EnterDecryptionContext(boxMon); - u16 moveIDs[4]; - u8 movePPs[4]; - u8 movePPUps[4]; + u16 moveIDs[LEARNED_MOVES_MAX]; + u8 movePPs[LEARNED_MOVES_MAX]; + u8 movePPUps[LEARNED_MOVES_MAX]; for (int i = 0; i < 3; i++) { moveIDs[i] = BoxPokemon_GetValue(boxMon, MON_DATA_MOVE2 + i, NULL); @@ -3616,7 +3607,7 @@ static void BoxPokemon_ReplaceMove(BoxPokemon *boxMon, u16 moveID) movePPs[3] = MoveTable_LoadParam(moveID, MOVEATTRIBUTE_PP); movePPUps[3] = 0; - for (int i = 0; i < 4; i++) { + for (int i = 0; i < LEARNED_MOVES_MAX; i++) { BoxPokemon_SetValue(boxMon, MON_DATA_MOVE1 + i, &moveIDs[i]); BoxPokemon_SetValue(boxMon, MON_DATA_MOVE1_CUR_PP + i, &movePPs[i]); BoxPokemon_SetValue(boxMon, MON_DATA_MOVE1_PP_UPS + i, &movePPUps[i]); @@ -3747,7 +3738,7 @@ void Pokemon_ClearMoveSlot(Pokemon *mon, u32 moveSlot) static BOOL Pokemon_HasMove(Pokemon *mon, u16 moveID) { int i; - for (i = 0; i < 4; i++) { + for (i = 0; i < LEARNED_MOVES_MAX; i++) { if (Pokemon_GetValue(mon, MON_DATA_MOVE1 + i, NULL) == moveID) { break; } @@ -4045,9 +4036,8 @@ void BoxPokemon_SetArceusForm(BoxPokemon *boxMon) int monAbility = BoxPokemon_GetValue(boxMon, MON_DATA_ABILITY, NULL); int monHeldItem = BoxPokemon_GetValue(boxMon, MON_DATA_HELD_ITEM, NULL); - // TODO enum values - if (monSpecies == SPECIES_ARCEUS && monAbility == 121) { - int monForm = Pokemon_GetArceusTypeOf(Item_LoadParam(monHeldItem, 1, 0)); + if (monSpecies == SPECIES_ARCEUS && monAbility == ABILITY_MULTITYPE) { + int monForm = Pokemon_GetArceusTypeOf(Item_LoadParam(monHeldItem, ITEM_PARAM_HOLD_EFFECT, 0)); BoxPokemon_SetValue(boxMon, MON_DATA_FORM, &monForm); } } @@ -4280,7 +4270,7 @@ BOOL Pokemon_SetRotomForm(Pokemon *mon, int monForm, int moveSlot) int newFormMoveID = rotomFormMoves[monForm]; int i; - for (i = 0; i < 4; i++) { + for (i = 0; i < LEARNED_MOVES_MAX; i++) { int j; int moveID = Pokemon_GetValue(mon, MON_DATA_MOVE1 + i, NULL); @@ -4300,7 +4290,7 @@ BOOL Pokemon_SetRotomForm(Pokemon *mon, int monForm, int moveSlot) } if (newFormMoveID != MOVE_NONE) { - for (i = 0; i < 4; i++) { + for (i = 0; i < LEARNED_MOVES_MAX; i++) { if (Pokemon_GetValue(mon, MON_DATA_MOVE1 + i, NULL) == MOVE_NONE) { Pokemon_ResetMoveSlot(mon, newFormMoveID, i); break; @@ -4433,7 +4423,7 @@ void Pokemon_GiveHeldItem(Pokemon *mon, u32 param1, int param2) u16 monItem1 = PokemonPersonalData_GetFormValue(monSpecies, monForm, MON_DATA_PERSONAL_ITEM1); u16 monItem2 = PokemonPersonalData_GetFormValue(monSpecies, monForm, MON_DATA_PERSONAL_ITEM2); - if (monItem1 == monItem2 && monItem1 != 0) { + if (monItem1 == monItem2 && monItem1 != ITEM_NONE) { Pokemon_SetValue(mon, MON_DATA_HELD_ITEM, &monItem1); return; } @@ -4500,7 +4490,7 @@ static void BoxPokemon_CalcAbility(BoxPokemon *boxMon) int monAbility2 = PokemonPersonalData_GetFormValue(monSpecies, monForm, MON_DATA_PERSONAL_ABILITY_2); // TODO enum value? - if (monAbility2 != 0) { + if (monAbility2 != ABILITY_NONE) { if (monPersonality & 1) { BoxPokemon_SetValue(boxMon, MON_DATA_ABILITY, &monAbility2); } else { @@ -4741,24 +4731,24 @@ int LowestBit(u32 flag) } static const u16 Unk_020F05BE[18] = { - 0x96, - 0x97, - 0xF9, - 0xFA, - 0xFB, - 0x17E, - 0x17F, - 0x180, - 0x181, - 0x182, - 0x1E3, - 0x1E4, - 0x1E7, - 0x1E9, - 0x1EA, - 0x1EB, - 0x1EC, - 0x1ED + SPECIES_MEWTWO, + SPECIES_MEW, + SPECIES_LUGIA, + SPECIES_HO_OH, + SPECIES_CELEBI, + SPECIES_KYOGRE, + SPECIES_GROUDON, + SPECIES_RAYQUAZA, + SPECIES_JIRACHI, + SPECIES_DEOXYS, + SPECIES_DIALGA, + SPECIES_PALKIA, + SPECIES_GIRATINA, + SPECIES_PHIONE, + SPECIES_MANAPHY, + SPECIES_DARKRAI, + SPECIES_SHAYMIN, + SPECIES_ARCEUS }; BOOL sub_02078804(u16 param0) @@ -4858,7 +4848,7 @@ void sub_0207896C(BoxPokemon *boxMon) { BOOL reencrypt = BoxPokemon_EnterDecryptionContext(boxMon); - for (int i = 0; i < 4; i++) { + for (int i = 0; i < LEARNED_MOVES_MAX; i++) { if (BoxPokemon_GetValue(boxMon, MON_DATA_MOVE1 + i, NULL)) { u8 moveMaxPP = BoxPokemon_GetValue(boxMon, MON_DATA_MOVE1_MAX_PP + i, NULL); diff --git a/src/pokemon_summary_app.c b/src/pokemon_summary_app.c index 124a08a36b..c39d7e9d26 100644 --- a/src/pokemon_summary_app.c +++ b/src/pokemon_summary_app.c @@ -24,6 +24,7 @@ #include "party.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" #include "string_template.h" @@ -34,7 +35,6 @@ #include "unk_0200762C.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02015F84.h" #include "unk_02017728.h" @@ -186,7 +186,7 @@ static int sub_0208C330(OverlayManager *param0, int *param1) SetMainCallback(sub_0208C604, v0); GXLayers_TurnBothDispOn(); sub_02004550(61, 0, 0); - sub_020397E4(); + DrawWifiConnectionIcon(); NARC_dtor(v1); return 1; @@ -281,7 +281,7 @@ static int sub_0208C5A0(OverlayManager *param0, int *param1) sub_0208FE88(v0); sub_0208C76C(v0->bgl); sub_0201E530(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_0208C950(v0); NARC_dtor(v0->narcPlPokeData); Font_UseLazyGlyphAccess(FONT_SYSTEM); @@ -301,7 +301,7 @@ static void sub_0208C604(void *param0) Bg_RunScheduledUpdates(v0->bgl); sub_02008A94(v0->monSpriteData.spriteManager); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } @@ -511,7 +511,7 @@ static void sub_0208C950(PokemonSummaryApp *param0) static int sub_0208C9C8(PokemonSummaryApp *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { sub_02092028(param0); sub_0208D618(param0); @@ -929,7 +929,7 @@ static int sub_0208CF78(PokemonSummaryApp *param0) } Font_LoadScreenIndicatorsPalette(0, 14 * 32, 19); - sub_0200DD0C(param0->bgl, 1, (1024 - (18 + 12)), 13, Options_Frame(param0->data->options), 19); + LoadMessageBoxGraphics(param0->bgl, 1, (1024 - (18 + 12)), 13, Options_Frame(param0->data->options), 19); if (param0->subscreen == 0) { sub_02091610(param0, 0xfe); @@ -983,7 +983,7 @@ static u8 sub_0208D17C(PokemonSummaryApp *param0) static u8 sub_0208D18C(PokemonSummaryApp *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } @@ -1070,7 +1070,7 @@ static void sub_0208D200(PokemonSummaryApp *param0, Pokemon *param1, PokemonSumm param2->ability = (u8)Pokemon_GetValue(param1, MON_DATA_ABILITY, NULL); param2->nature = Pokemon_GetNature(param1); - for (v1 = 0; v1 < 4; v1++) { + for (v1 = 0; v1 < LEARNED_MOVES_MAX; v1++) { param2->moves[v1] = (u16)Pokemon_GetValue(param1, MON_DATA_MOVE1 + v1, NULL); param2->curPP[v1] = (u8)Pokemon_GetValue(param1, MON_DATA_MOVE1_CUR_PP + v1, NULL); v2 = (u8)Pokemon_GetValue(param1, MON_DATA_MOVE1_PP_UPS + v1, NULL); @@ -2157,7 +2157,7 @@ static int sub_0208E958(PokemonSummaryApp *param0) { if (param0->monData.sheen == 255) { Font_LoadScreenIndicatorsPalette(0, 14 * 32, 19); - sub_0200DD0C(param0->bgl, 1, (1024 - (18 + 12)), 13, Options_Frame(param0->data->options), 19); + LoadMessageBoxGraphics(param0->bgl, 1, (1024 - (18 + 12)), 13, Options_Frame(param0->data->options), 19); sub_02091610(param0, 0xff); param0->data->returnMode = 1; diff --git a/src/pokeradar.c b/src/pokeradar.c index 537e603e0a..738e0dd280 100644 --- a/src/pokeradar.c +++ b/src/pokeradar.c @@ -271,7 +271,7 @@ void sub_0206979C(FieldSystem *fieldSystem) GrassPatch *patch; int patchRing; - if (!fieldSystem->chain->active || fieldSystem->unk_10 != NULL) { + if (!fieldSystem->chain->active || fieldSystem->taskManager != NULL) { return; } diff --git a/src/render_window.c b/src/render_window.c new file mode 100644 index 0000000000..2edfb5ecd7 --- /dev/null +++ b/src/render_window.c @@ -0,0 +1,1010 @@ +#include "render_window.h" + +#include +#include + +#include "constants/narc.h" + +#include "struct_defs/archived_sprite.h" +#include "struct_defs/sprite_template.h" +#include "struct_defs/struct_0200D0F4.h" +#include "struct_defs/struct_02013610.h" + +#include "graphics/signposts/field_board.naix" +#include "graphics/windows/pl_winframe.naix" +#include "overlay005/ov5_021D2F14.h" +#include "overlay005/struct_ov5_021D30A8.h" +#include "overlay104/struct_ov104_02241308.h" + +#include "bg_window.h" +#include "cell_actor.h" +#include "graphics.h" +#include "gx_layers.h" +#include "heap.h" +#include "narc.h" +#include "palette.h" +#include "pokemon.h" +#include "render_text.h" +#include "sprite_resource.h" +#include "sys_task.h" +#include "sys_task_manager.h" +#include "unk_0200679C.h" +#include "unk_0200762C.h" +#include "unk_0200A328.h" +#include "unk_0200C6E4.h" +#include "unk_020131EC.h" + +#define SIGNPOST_CONTENT_WIDTH_TILES 6 +#define SIGNPOST_CONTENT_HEIGHT_TILES 4 +#define SIGNPOST_BORDER_LEFT_SIZE 1 +#define SIGNPOST_BORDER_RIGHT_SIZE 2 +#define SIGNPOST_BORDER_Y_SIZE 1 +#define SIGNPOST_WIDTH_TILES (SIGNPOST_CONTENT_WIDTH_TILES + SIGNPOST_BORDER_LEFT_SIZE + SIGNPOST_BORDER_RIGHT_SIZE) +#define SIGNPOST_HEIGHT_TILES (SIGNPOST_CONTENT_HEIGHT_TILES + SIGNPOST_BORDER_Y_SIZE + SIGNPOST_BORDER_Y_SIZE) +#define SIGNPOST_WIDTH_SIZE (SIGNPOST_WIDTH_TILES * 2) +#define SIGNPOST_HEIGHT_SIZE (SIGNPOST_HEIGHT_TILES * 2) +#define SIGNPOST_SIZE (SIGNPOST_WIDTH_SIZE + SIGNPOST_HEIGHT_SIZE) + +#define WAIT_DIAL_FRAME_WIDTH_TILES 2 +#define WAIT_DIAL_FRAME_HEIGHT_TILES 2 +#define WAIT_DIAL_TILES_PER_FRAME (WAIT_DIAL_FRAME_WIDTH_TILES * WAIT_DIAL_FRAME_HEIGHT_TILES) +#define WAIT_DIAL_FRAME_SIZE (TILE_SIZE_4BPP * WAIT_DIAL_TILES_PER_FRAME) +#define WAIT_DIAL_FRAME_OFFSET(i) (WAIT_DIAL_FRAME_SIZE * i) +#define WAIT_DIAL_FRAME_COUNT 8 +#define WAIT_DIAL_WHOLE_SIZE (WAIT_DIAL_FRAME_SIZE * WAIT_DIAL_FRAME_COUNT) + +#define POKEMON_PREVIEW_RESOURCE_ID 89301 + +enum WaitDialDrawMode { + DIAL_DRAW_MODE_LOAD_ONLY = 0, + DIAL_DRAW_MODE_LOAD_AND_DRAW, + DIAL_DRAW_MODE_CLEAR, +}; + +enum WaitDialDeleteMode { + DIAL_DELETE_MODE_NONE = 0, + DIAL_DELETE_MODE_CLEAR, + DIAL_DELETE_MODE_DESTROY, +}; + +typedef struct WaitDial { + Window *window; + u8 pixels[WAIT_DIAL_WHOLE_SIZE]; + u8 messageBoxPixels[WAIT_DIAL_FRAME_SIZE]; + u16 messageBoxTile; + u8 counter; + u8 curFrame : 7; + u8 : 1; + u8 deleteMode : 2; + u8 : 6; +} WaitDial; + +typedef struct PokemonPreview { + UnkStruct_ov5_021D30A8 unk_00; + CellActorData *cellActorData; + BgConfig *bgConfig; + u8 bgLayer; + u8 x; + u8 y; + u8 state; +} PokemonPreview; + +static void DrawStandardWindowFrame(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 width, u8 height, u8 palette, u16 tile); +static void DrawMessageBoxFrame(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 width, u8 height, u8 palette, u16 tile); +static void BlitRectToBitmap(void *srcPixels, u16 srcX, u16 srcY, u16 srcWidth, u16 srcHeight, void *destPixels, u16 destWidth, u16 destHeight, u16 destX, u16 destY, u16 blitWidth, u16 blitHeight); +static void DrawMessageBoxScrollCursor(Window *window, u16 baseTile); +static void LoadSignpostContentTiles(BgConfig *bgConfig, u8 bgLayer, u16 offset, u8 param3, u16 narcMemberIdx, u32 heapID); +static void DrawSignpostTiles(Window *window, u16 tile, u8 palette); +static void DrawWaitDial(WaitDial *dial, u32 drawMode); +static void SysTask_TickWaitDial(SysTask *task, void *data); +static void SysTask_CleanupWaitDial(SysTask *task, void *data); +static void SysTask_HandlePokemonPreview(SysTask *task, void *data); +static PokemonPreview *CreatePokemonPreviewTask(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u32 heapID); +static void sub_0200ED50(PokemonPreview *preview, u32 heapID); +static void LoadPokemonPreviewResources(PokemonPreview *preview); +static void CreatePokemonPreviewSprite(PokemonPreview *preview, u8 x, u8 y); +static void LoadAndDrawPokemonPreviewSprite(UnkStruct_ov5_021D30A8 *param0, u16 species, u8 gender); +static void LoadAndDrawPokemonPreviewSpriteFromStruct(UnkStruct_ov5_021D30A8 *param0, Pokemon *mon); +static void DrawPokemonPreviewSprite(UnkStruct_ov5_021D30A8 *param0, ArchivedSprite *sprite); +static void DrawPokemonPreviewWindow(PokemonPreview *preview, u8 palette, u16 tile); +static void ErasePokemonPreviewWindow(PokemonPreview *preview); + +static const SpriteTemplate sPokemonPreviewSpriteTemplate = { + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + .resources = { + POKEMON_PREVIEW_RESOURCE_ID, + POKEMON_PREVIEW_RESOURCE_ID, + POKEMON_PREVIEW_RESOURCE_ID, + POKEMON_PREVIEW_RESOURCE_ID, + NULL, + NULL, + }, + .bgPriority = 0, + .transferToVRAM = FALSE, +}; + +void LoadStandardWindowTiles(BgConfig *bgConfig, u8 bgLayer, u16 offset, u8 standardWindowType, u32 heapID) +{ + if (standardWindowType == STANDARD_WINDOW_SYSTEM) { + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, + standard_system_NCGR, + bgConfig, + bgLayer, + offset, + 0, + FALSE, + heapID); + } else { + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, + standard_field_NCGR, + bgConfig, + bgLayer, + offset, + 0, + FALSE, + heapID); + } +} + +u32 GetStandardWindowPaletteNARCMember() +{ + return standard_system_NCLR; +} + +void LoadStandardWindowGraphics(BgConfig *bgConfig, u8 bgLayer, u16 tileOffset, u8 palOffset, u8 standardWindowType, u32 heapID) +{ + u32 narcMemberIdx; + if (standardWindowType == STANDARD_WINDOW_SYSTEM) { + narcMemberIdx = standard_system_NCGR; + } else { + narcMemberIdx = standard_field_NCGR; + } + + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, + narcMemberIdx, + bgConfig, + bgLayer, + tileOffset, + 0, + FALSE, + heapID); + + if (standardWindowType == STANDARD_WINDOW_UNDERGROUND) { + narcMemberIdx = standard_underground_NCLR; + } else { + narcMemberIdx = standard_system_NCLR; + } + + if (bgLayer < BG_LAYER_SUB_0) { + Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_WINFRAME, + narcMemberIdx, + PAL_LOAD_MAIN_BG, + palOffset * PALETTE_SIZE_BYTES, + PALETTE_SIZE_BYTES, + heapID); + } else { + Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_WINFRAME, + narcMemberIdx, + PAL_LOAD_SUB_BG, + palOffset * PALETTE_SIZE_BYTES, + PALETTE_SIZE_BYTES, + heapID); + } +} + +static void DrawStandardWindowFrame(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 width, u8 height, u8 palette, u16 tile) +{ + // clang-format off + Bg_FillTilemapRect(bgConfig, bgLayer, tile, x - 1, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 1, x, y - 1, width, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 2, x + width, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 3, x - 1, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 5, x + width, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 6, x - 1, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 7, x, y + height, width, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 8, x + width, y + height, 1, 1, palette); + // clang-format on +} + +void Window_DrawStandardFrame(Window *window, u8 skipTransfer, u16 tile, u8 palette) +{ + DrawStandardWindowFrame(window->bgConfig, + Window_GetBgLayer(window), + Window_GetXPos(window), + Window_GetYPos(window), + Window_GetWidth(window), + Window_GetHeight(window), + palette, + tile); + + if (skipTransfer == FALSE) { + Window_CopyToVRAM(window); + } +} + +void Window_EraseStandardFrame(Window *window, u8 skipTransfer) +{ + Bg_FillTilemapRect(window->bgConfig, + Window_GetBgLayer(window), + 0, + Window_GetXPos(window) - 1, + Window_GetYPos(window) - 1, + Window_GetWidth(window) + 2, + Window_GetHeight(window) + 2, + 0); + + if (skipTransfer == FALSE) { + Window_ClearAndCopyToVRAM(window); + } +} + +u32 GetMessageBoxTilesNARCMember(u32 messageBoxFrame) +{ + return message_box_00_NCGR + messageBoxFrame; +} + +u32 GetMessageBoxPaletteNARCMember(u32 messageBoxFrame) +{ + return message_box_00_NCLR + messageBoxFrame; +} + +void LoadMessageBoxGraphics(BgConfig *bgConfig, u8 bgLayer, u16 tileOffset, u8 palOffset, u8 messageBoxFrame, u32 heapID) +{ + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, + GetMessageBoxTilesNARCMember(messageBoxFrame), + bgConfig, + bgLayer, + tileOffset, + 0, + FALSE, + heapID); + + if (bgLayer < BG_LAYER_SUB_0) { + Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_WINFRAME, + GetMessageBoxPaletteNARCMember(messageBoxFrame), + PAL_LOAD_MAIN_BG, + palOffset * PALETTE_SIZE_BYTES, + PALETTE_SIZE_BYTES, + heapID); + } else { + Graphics_LoadPalette(NARC_INDEX_GRAPHIC__PL_WINFRAME, + GetMessageBoxPaletteNARCMember(messageBoxFrame), + PAL_LOAD_SUB_BG, + palOffset * PALETTE_SIZE_BYTES, + PALETTE_SIZE_BYTES, + heapID); + } +} + +static void DrawMessageBoxFrame(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 width, u8 height, u8 palette, u16 tile) +{ + // clang-format off + Bg_FillTilemapRect(bgConfig, bgLayer, tile, x - 2, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 1, x - 1, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 2, x, y - 1, width, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 3, x + width, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 4, x + width + 1, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 5, x + width + 2, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 6, x - 2, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 7, x - 1, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 9, x + width, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 10, x + width + 1, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 11, x + width + 2, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 12, x - 2, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 13, x - 1, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 14, x, y + height, width, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 15, x + width, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 16, x + width + 1, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 17, x + width + 2, y + height, 1, 1, palette); + // clang-format on +} + +void Window_DrawMessageBox(Window *window, u32 tile, u32 palette) +{ + DrawMessageBoxFrame(window->bgConfig, + Window_GetBgLayer(window), + Window_GetXPos(window), + Window_GetYPos(window), + Window_GetWidth(window), + Window_GetHeight(window), + palette, + tile); +} + +void Window_DrawMessageBoxWithScrollCursor(Window *window, u8 skipTransfer, u16 tile, u8 palette) +{ + Window_DrawMessageBox(window, tile, palette); + + if (skipTransfer == FALSE) { + Window_CopyToVRAM(window); + } + + DrawMessageBoxScrollCursor(window, tile); +} + +void Window_EraseMessageBox(Window *window, u8 skipTransfer) +{ + Bg_FillTilemapRect(window->bgConfig, + Window_GetBgLayer(window), + 0, + Window_GetXPos(window) - 2, + Window_GetYPos(window) - 1, + Window_GetWidth(window) + 5, + Window_GetHeight(window) + 2, + 0); + + if (skipTransfer == FALSE) { + Window_ClearAndCopyToVRAM(window); + } +} + +static void BlitRectToBitmap(void *srcPixels, u16 srcX, u16 srcY, u16 srcWidth, u16 srcHeight, void *destPixels, u16 destWidth, u16 destHeight, u16 destX, u16 destY, u16 blitWidth, u16 blitHeight) +{ + Bitmap src, dest; + + src.pixels = (u8 *)srcPixels; + src.width = srcWidth; + src.height = srcHeight; + + dest.pixels = (u8 *)destPixels; + dest.width = destWidth; + dest.height = destHeight; + + Bitmap_BlitRect4bpp(&src, &dest, srcX, srcY, destX, destY, blitWidth, blitHeight, 0); +} + +#define SCROLL_CURSOR_TILES_PER_FRAME 4 +#define SCROLL_CURSOR_FRAME_COUNT 3 +#define SCROLL_CURSOR_TILE_OFFSET(i) (TILE_SIZE_4BPP * (i)) +#define SCROLL_CURSOR_FRAME_SIZE (SCROLL_CURSOR_TILE_OFFSET(SCROLL_CURSOR_TILES_PER_FRAME)) +#define SCROLL_CURSOR_GRAPHICS_SIZE (SCROLL_CURSOR_FRAME_SIZE * SCROLL_CURSOR_FRAME_COUNT) + +static void DrawMessageBoxScrollCursor(Window *window, u16 baseTile) +{ + // must forward-declare these to match + u8 *cursorTiles; + void *cursorCharPtr; + + u32 heapID = BgConfig_GetHeapID(window->bgConfig); + u8 bgLayer = Window_GetBgLayer(window); + u8 *cursorBlit = Heap_AllocFromHeap(heapID, SCROLL_CURSOR_GRAPHICS_SIZE); + u8 *bgGfx = Bg_GetCharPtr(bgLayer); + + NNSG2dCharacterData *cursorCharData; + cursorCharPtr = Graphics_GetCharData(NARC_INDEX_GRAPHIC__PL_WINFRAME, + scroll_cursor_NCGR, + FALSE, + &cursorCharData, + heapID); + cursorTiles = cursorCharData->pRawData; + + // Copy the window frame tiles into the blit window as a background + for (u8 i = 0; i < SCROLL_CURSOR_FRAME_COUNT; i++) { + u32 frameOffset = i * SCROLL_CURSOR_FRAME_SIZE; + + memcpy(&cursorBlit[frameOffset + SCROLL_CURSOR_TILE_OFFSET(0)], &bgGfx[(baseTile + 10) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + memcpy(&cursorBlit[frameOffset + SCROLL_CURSOR_TILE_OFFSET(1)], &bgGfx[(baseTile + 11) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + memcpy(&cursorBlit[frameOffset + SCROLL_CURSOR_TILE_OFFSET(2)], &bgGfx[(baseTile + 10) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + memcpy(&cursorBlit[frameOffset + SCROLL_CURSOR_TILE_OFFSET(3)], &bgGfx[(baseTile + 11) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + } + + BlitRectToBitmap(cursorTiles, + 4, + 0, + 12, + 16 * 3, + cursorBlit, + 12, + 16 * 3, + 1, + 0, + 12, + 16 * 3); + + Bg_LoadTiles(window->bgConfig, bgLayer, cursorBlit, SCROLL_CURSOR_GRAPHICS_SIZE, baseTile + 18); + TextPrinter_SetScrollArrowBaseTile(baseTile); + Heap_FreeToHeap(cursorCharPtr); + Heap_FreeToHeap(cursorBlit); +} + +void ReplaceTransparentTiles(BgConfig *bgConfig, u8 bgLayer, u16 bgBaseTile, u8 withTile, u8 messageBoxFrame, u32 heapID) +{ + void *tiles; + NNSG2dCharacterData *chars; + u8 *src; + u32 i; + u8 srcTop, srcBot; + + tiles = Graphics_GetCharData(NARC_INDEX_GRAPHIC__PL_WINFRAME, + GetMessageBoxTilesNARCMember(messageBoxFrame), + FALSE, + &chars, + heapID); + src = Heap_AllocFromHeap(heapID, TILE_SIZE_4BPP * 18); + memcpy(src, chars->pRawData, TILE_SIZE_4BPP * 18); + + for (i = 0; i < TILE_SIZE_4BPP * 18; i++) { + srcTop = src[i] >> 4; + srcBot = src[i] & 0xF; + + if (srcTop == 0) { + srcTop = withTile; + } + + if (srcBot == 0) { + srcBot = withTile; + } + + src[i] = (srcTop << 4) | srcBot; + } + + Bg_LoadTiles(bgConfig, bgLayer, src, TILE_SIZE_4BPP * 18, bgBaseTile); + Heap_FreeToHeap(tiles); + Heap_FreeToHeap(src); +} + +void LoadSignpostContentGraphics(BgConfig *bgConfig, u8 bgLayer, u16 baseTile, u8 palette, u8 signpostType, u16 signpostNARCMemberIdx, u32 heapID) +{ + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__FIELD_BOARD, + signpost_frame_NCGR, + bgConfig, + bgLayer, + baseTile, + SIGNPOST_SIZE * TILE_SIZE_4BPP, + FALSE, + heapID); + + void *signpostNclr = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_GRAPHIC__FIELD_BOARD, signpost_NCLR, heapID); + + NNSG2dPaletteData *paletteData; + NNS_G2dGetUnpackedPaletteData(signpostNclr, &paletteData); + u16 *paletteBuf = paletteData->pRawData; + + Bg_LoadPalette(bgLayer, + paletteBuf + (signpostType * PALETTE_SIZE), + PALETTE_SIZE_BYTES, + palette * PALETTE_SIZE_BYTES); + Heap_FreeToHeapExplicit(heapID, signpostNclr); + + if (signpostType == SIGNPOST_CITY_MAP || signpostType == SIGNPOST_ROUTE_MAP) { + LoadSignpostContentTiles(bgConfig, + bgLayer, + baseTile + SIGNPOST_SIZE, + signpostType, + signpostNARCMemberIdx, + heapID); + } +} + +static void LoadSignpostContentTiles(BgConfig *bgConfig, u8 bgLayer, u16 offset, u8 signpostType, u16 narcMemberIdx, u32 heapID) +{ + if (signpostType == SIGNPOST_CITY_MAP) { + narcMemberIdx += city_map_empty_NCGR; + } else { + narcMemberIdx += route_map_00_NCGR; + } + + Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__FIELD_BOARD, + narcMemberIdx, + bgConfig, + bgLayer, + offset, + 24 * TILE_SIZE_4BPP, + FALSE, + heapID); +} + +static void DrawSignpostFrame(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 width, u8 height, u8 palette, u16 tile) +{ + // clang-format off + Bg_FillTilemapRect(bgConfig, bgLayer, tile, x - 9, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 1, x - 8, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 2, x - 7, y - 1, width + 7, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 3, x + width, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 4, x + width + 1, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 5, x + width + 2, y - 1, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 6, x - 9, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 7, x - 8, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 8, x - 1, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 9, x + width, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 10, x + width + 1, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 11, x + width + 2, y, 1, height, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 12, x - 9, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 13, x - 8, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 14, x - 7, y + height, width + 7, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 15, x + width, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 16, x + width + 1, y + height, 1, 1, palette); + Bg_FillTilemapRect(bgConfig, bgLayer, tile + 17, x + width + 2, y + height, 1, 1, palette); + // clang-format on +} + +static void DrawSignpostTiles(Window *window, u16 tile, u8 palette) +{ + u16 dy, dx; // must forward-declare to match + + u8 bgLayer = Window_GetBgLayer(window); + u16 x = Window_GetXPos(window) - 7; + u16 y = Window_GetYPos(window); + + for (dy = 0; dy < SIGNPOST_CONTENT_HEIGHT_TILES; dy++) { + for (dx = 0; dx < SIGNPOST_CONTENT_WIDTH_TILES; dx++) { + Bg_FillTilemapRect(window->bgConfig, bgLayer, tile + dy * SIGNPOST_CONTENT_WIDTH_TILES + dx, x + dx, y + dy, 1, 1, palette); + } + } +} + +void Window_DrawSignpost(Window *window, u8 skipTransfer, u16 baseTile, u8 palette, u8 signpostType) +{ + u8 bgLayer = Window_GetBgLayer(window); + + if (signpostType == SIGNPOST_CITY_MAP || signpostType == SIGNPOST_ROUTE_MAP) { + DrawSignpostFrame(window->bgConfig, + bgLayer, + Window_GetXPos(window), + Window_GetYPos(window), + Window_GetWidth(window), + Window_GetHeight(window), + palette, + baseTile); + DrawSignpostTiles(window, baseTile + SIGNPOST_SIZE, palette); + } else { + DrawMessageBoxFrame(window->bgConfig, + bgLayer, + Window_GetXPos(window), + Window_GetYPos(window), + Window_GetWidth(window), + Window_GetHeight(window), + palette, + baseTile); + } + + if (skipTransfer == FALSE) { + Window_CopyToVRAM(window); + } + + DrawMessageBoxScrollCursor(window, baseTile); +} + +void Window_EraseSignpost(Window *window, u8 signpostType, u8 skipTransfer) +{ + u8 bgLayer = Window_GetBgLayer(window); + + if (signpostType == SIGNPOST_CITY_MAP || signpostType == SIGNPOST_ROUTE_MAP) { + Bg_FillTilemapRect(window->bgConfig, + bgLayer, + 0, + Window_GetXPos(window) - 9, + Window_GetYPos(window) - 1, + Window_GetWidth(window) + 11, + Window_GetHeight(window) + 2, + 0); + } else { + Bg_FillTilemapRect(window->bgConfig, + bgLayer, + 0, + Window_GetXPos(window) - 2, + Window_GetYPos(window) - 1, + Window_GetWidth(window) + 5, + Window_GetHeight(window) + 2, + 0); + } + + if (skipTransfer == FALSE) { + Window_ClearAndCopyToVRAM(window); + } +} + +void *Window_AddWaitDial(Window *window, u32 baseTile) +{ + WaitDial *dial; + u32 heapID; + u8 *bgCharPtr; + u8 *dialTiles; + u8 *tmp; + void *dialTilesRaw; + u8 bgLayer; + u8 i; + NNSG2dCharacterData *dialCharData; + + heapID = BgConfig_GetHeapID(window->bgConfig); + bgLayer = Window_GetBgLayer(window); + bgCharPtr = Bg_GetCharPtr(bgLayer); + dial = Heap_AllocFromHeap(heapID, sizeof(WaitDial)); + + memcpy(dial->messageBoxPixels, &bgCharPtr[(baseTile + 18) * TILE_SIZE_4BPP], WAIT_DIAL_FRAME_SIZE); + + tmp = Heap_AllocFromHeap(heapID, WAIT_DIAL_FRAME_SIZE); + + memcpy(&tmp[TILE_SIZE_4BPP * 0], &bgCharPtr[(baseTile + 10) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + memcpy(&tmp[TILE_SIZE_4BPP * 1], &bgCharPtr[(baseTile + 11) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + memcpy(&tmp[TILE_SIZE_4BPP * 2], &bgCharPtr[(baseTile + 10) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + memcpy(&tmp[TILE_SIZE_4BPP * 3], &bgCharPtr[(baseTile + 11) * TILE_SIZE_4BPP], TILE_SIZE_4BPP); + + for (i = 0; i < WAIT_DIAL_FRAME_COUNT; i++) { + memcpy(dial->pixels + WAIT_DIAL_FRAME_OFFSET(i), tmp, WAIT_DIAL_FRAME_SIZE); + } + + Heap_FreeToHeap(tmp); + + dialTilesRaw = Graphics_GetCharData(NARC_INDEX_GRAPHIC__PL_WINFRAME, + wait_dial_NCGR, + FALSE, + &dialCharData, + heapID); + dialTiles = dialCharData->pRawData; + + BlitRectToBitmap(dialTiles, + 0, + 0, + WAIT_DIAL_FRAME_WIDTH_TILES * 8, + (WAIT_DIAL_FRAME_HEIGHT_TILES * 8) * WAIT_DIAL_FRAME_COUNT, + dial->pixels, + WAIT_DIAL_FRAME_WIDTH_TILES * 8, + (WAIT_DIAL_FRAME_HEIGHT_TILES * 8) * WAIT_DIAL_FRAME_COUNT, + 0, + 0, + WAIT_DIAL_FRAME_WIDTH_TILES * 8, + (WAIT_DIAL_FRAME_HEIGHT_TILES * 8) * WAIT_DIAL_FRAME_COUNT); + Heap_FreeToHeap(dialTilesRaw); + + dial->window = window; + dial->messageBoxTile = baseTile; + dial->counter = 0; + dial->curFrame = 0; + dial->deleteMode = 0; + + SysTask_ExecuteOnVBlank(SysTask_TickWaitDial, dial, 0); + DrawWaitDial(dial, DIAL_DRAW_MODE_LOAD_AND_DRAW); + + return dial; +} + +static void DrawWaitDial(WaitDial *dial, u32 drawMode) +{ + u8 bgLayer = Window_GetBgLayer(dial->window); + u8 x = Window_GetXPos(dial->window); + u8 y = Window_GetYPos(dial->window); + u8 width = Window_GetWidth(dial->window); + + if (drawMode == DIAL_DRAW_MODE_CLEAR) { + Bg_LoadTiles(dial->window->bgConfig, bgLayer, dial->messageBoxPixels, WAIT_DIAL_FRAME_SIZE, dial->messageBoxTile + 18); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 10, x + width + 1, y + 2, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 11, x + width + 2, y + 2, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 10, x + width + 1, y + 3, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 11, x + width + 2, y + 3, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_CopyTilemapBufferToVRAM(dial->window->bgConfig, bgLayer); + + return; + } + + Bg_LoadTiles(dial->window->bgConfig, bgLayer, &dial->pixels[WAIT_DIAL_FRAME_SIZE * dial->curFrame], WAIT_DIAL_FRAME_SIZE, dial->messageBoxTile + 18); + + if (drawMode == DIAL_DRAW_MODE_LOAD_ONLY) { + return; + } + + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 18, x + width + 1, y + 2, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 19, x + width + 2, y + 2, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 20, x + width + 1, y + 3, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_FillTilemapRect(dial->window->bgConfig, bgLayer, dial->messageBoxTile + 21, x + width + 2, y + 3, 1, 1, TILEMAP_FILL_VAL_KEEP_PALETTE); + Bg_CopyTilemapBufferToVRAM(dial->window->bgConfig, bgLayer); +} + +static void SysTask_TickWaitDial(SysTask *task, void *data) +{ + WaitDial *dial = data; + + if (dial->deleteMode != DIAL_DELETE_MODE_NONE) { + if (dial->deleteMode == DIAL_DELETE_MODE_CLEAR) { + DrawWaitDial(dial, DIAL_DRAW_MODE_CLEAR); + } + + SysTask_Done(task); + return; + } + + dial->counter++; + + if (dial->counter == 16) { + dial->counter = 0; + dial->curFrame = (dial->curFrame + 1) & 7; + DrawWaitDial(dial, DIAL_DRAW_MODE_LOAD_ONLY); + } +} + +static void SysTask_CleanupWaitDial(SysTask *task, void *data) +{ + Heap_FreeToHeap(data); + SysTask_Done(task); +} + +void DestroyWaitDial(void *taskData) +{ + WaitDial *dial = taskData; + + SysTask_ExecuteAfterVBlank(SysTask_CleanupWaitDial, dial, 0); + dial->deleteMode = DIAL_DELETE_MODE_CLEAR; +} + +void DestroyWaitDialTaskOnly(void *taskData) +{ + WaitDial *dial = taskData; + + SysTask_ExecuteAfterVBlank(SysTask_CleanupWaitDial, dial, 0); + dial->deleteMode = DIAL_DELETE_MODE_DESTROY; +} + +u8 *DrawPokemonPreview(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 palette, u16 baseTile, u16 species, u8 gender, enum HeapId heapID) +{ + PokemonPreview *preview = CreatePokemonPreviewTask(bgConfig, bgLayer, x, y, heapID); + + sub_0200ED50(preview, heapID); + LoadPokemonPreviewResources(preview); + CreatePokemonPreviewSprite(preview, x, y); + LoadAndDrawPokemonPreviewSprite(&preview->unk_00, species, gender); + DrawPokemonPreviewWindow(preview, palette, baseTile); + Bg_CopyTilemapBufferToVRAM(bgConfig, bgLayer); + + return &preview->state; +} + +u8 *DrawPokemonPreviewFromStruct(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u8 palette, u16 baseTile, Pokemon *mon, enum HeapId heapID) +{ + PokemonPreview *preview = CreatePokemonPreviewTask(bgConfig, bgLayer, x, y, heapID); + + sub_0200ED50(preview, heapID); + LoadPokemonPreviewResources(preview); + CreatePokemonPreviewSprite(preview, x, y); + LoadAndDrawPokemonPreviewSpriteFromStruct(&preview->unk_00, mon); + DrawPokemonPreviewWindow(preview, palette, baseTile); + Bg_CopyTilemapBufferToVRAM(bgConfig, bgLayer); + + return &preview->state; +} + +static void SysTask_HandlePokemonPreview(SysTask *task, void *data) +{ + PokemonPreview *preview = data; + + switch (preview->state) { + case 1: + ErasePokemonPreviewWindow(preview); + sub_0200D0F4(preview->cellActorData); + ov5_021D375C(&preview->unk_00); + SysTask_FinishAndFreeParam(task); + return; + + case 2: + preview->state = 3; + CellActor_SetAnim(preview->cellActorData->unk_00, 1); + break; + + case 3: + if (CellActor_GetAnimFrame(preview->cellActorData->unk_00) == 6) { + preview->state = 0; + } + break; + } + + CellActor_UpdateAnim(preview->cellActorData->unk_00, FX32_ONE); + CellActorCollection_Update(preview->unk_00.unk_00); +} + +static PokemonPreview *CreatePokemonPreviewTask(BgConfig *bgConfig, u8 bgLayer, u8 x, u8 y, u32 heapID) +{ + PokemonPreview *preview = SysTask_GetParam(SysTask_StartAndAllocateParam(SysTask_HandlePokemonPreview, sizeof(PokemonPreview), 0, heapID)); + + preview->state = 0; + preview->bgConfig = bgConfig; + preview->bgLayer = bgLayer; + preview->x = x; + preview->y = y; + + return preview; +} + +static void sub_0200ED50(PokemonPreview *preview, u32 heapID) +{ + UnkStruct_ov104_02241308 v0 = { 1, 1, 1, 1, 0, 0 }; + ov5_021D3190(&preview->unk_00, &v0, 1, heapID); +} + +static void LoadPokemonPreviewResources(PokemonPreview *preview) +{ + ov5_021D3270(&preview->unk_00, + NARC_INDEX_GRAPHIC__PL_WINFRAME, + pokemon_preview_NCLR, + FALSE, + 1, + NNS_G2D_VRAM_TYPE_2DMAIN, + POKEMON_PREVIEW_RESOURCE_ID); + ov5_021D3360(&preview->unk_00, + NARC_INDEX_GRAPHIC__PL_WINFRAME, + pokemon_preview_cell_NCER, + FALSE, + POKEMON_PREVIEW_RESOURCE_ID); + ov5_021D3388(&preview->unk_00, + NARC_INDEX_GRAPHIC__PL_WINFRAME, + pokemon_preview_anim_NANR, + FALSE, + POKEMON_PREVIEW_RESOURCE_ID); + ov5_021D33B0(&preview->unk_00, + NARC_INDEX_GRAPHIC__PL_WINFRAME, + pokemon_preview_NCGR, + FALSE, + NNS_G2D_VRAM_TYPE_2DMAIN, + POKEMON_PREVIEW_RESOURCE_ID); +} + +static void CreatePokemonPreviewSprite(PokemonPreview *preview, u8 x, u8 y) +{ + SpriteTemplate template = sPokemonPreviewSpriteTemplate; + template.x = (x + 5) * 8; + template.y = (y + 5) * 8; + + preview->cellActorData = ov5_021D3584(&preview->unk_00, &template); + + CellActorCollection_Update(preview->unk_00.unk_00); + GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, TRUE); +} + +static void LoadAndDrawPokemonPreviewSprite(UnkStruct_ov5_021D30A8 *param0, u16 species, u8 gender) +{ + void *buf = sub_0200762C(param0->unk_1C6); + + ArchivedSprite sprite; + BuildArchivedPokemonSprite(&sprite, species, gender, FACE_FRONT, FALSE, NULL, NULL); + DrawPokemonPreviewSprite(param0, &sprite); + sub_02007B6C(buf); +} + +static void LoadAndDrawPokemonPreviewSpriteFromStruct(UnkStruct_ov5_021D30A8 *param0, Pokemon *mon) +{ + void *buf = sub_0200762C(param0->unk_1C6); + + ArchivedSprite sprite; + Pokemon_BuildArchivedSprite(&sprite, mon, FACE_FRONT); + DrawPokemonPreviewSprite(param0, &sprite); + sub_02007B6C(buf); +} + +#define POKEMON_SPRITE_FRAME_WIDTH_TILES 10 +#define POKEMON_SPRITE_FRAME_HEIGHT_TILES 10 +#define POKEMON_SPRITE_FRAME_SIZE_TILES (POKEMON_SPRITE_FRAME_WIDTH_TILES * POKEMON_SPRITE_FRAME_HEIGHT_TILES) +#define POKEMON_SPRITE_FRAME_SIZE_BYTES (TILE_SIZE_4BPP * POKEMON_SPRITE_FRAME_SIZE_TILES) +#define POKEMON_SPRITE_WHOLE_SIZE_BYTES (POKEMON_SPRITE_FRAME_SIZE_BYTES * 2) + +static void DrawPokemonPreviewSprite(UnkStruct_ov5_021D30A8 *param0, ArchivedSprite *sprite) +{ + u8 *buf; + u32 offset; + SpriteResource *charResource, *plttResource; + NNSG2dImageProxy *imageProxy; + const NNSG2dImagePaletteProxy *paletteProxy; + + buf = Heap_AllocFromHeap(param0->unk_1C6, POKEMON_SPRITE_WHOLE_SIZE_BYTES); + + // frame 0 + UnkStruct_02013610 v6 = { 0, 0, 10, 10 }; + sub_020135F0(sprite->archive, sprite->character, param0->unk_1C6, &v6, buf); + + // frame 1 + UnkStruct_02013610 v7 = { 10, 0, 10, 10 }; + sub_020135F0(sprite->archive, sprite->character, param0->unk_1C6, &v7, buf + POKEMON_SPRITE_FRAME_SIZE_BYTES); + + charResource = SpriteResourceCollection_Find(param0->unk_194[SPRITE_RESOURCE_TILES], POKEMON_PREVIEW_RESOURCE_ID); + imageProxy = sub_0200A534(charResource); + offset = NNS_G2dGetImageLocation(imageProxy, NNS_G2D_VRAM_TYPE_2DMAIN); + + DC_FlushRange(buf, POKEMON_SPRITE_WHOLE_SIZE_BYTES); + GX_LoadOBJ(buf, offset, POKEMON_SPRITE_WHOLE_SIZE_BYTES); + + Heap_FreeToHeap(buf); + + buf = sub_02013660(sprite->archive, sprite->palette, param0->unk_1C6); + plttResource = SpriteResourceCollection_Find(param0->unk_194[SPRITE_RESOURCE_PALETTE], POKEMON_PREVIEW_RESOURCE_ID); + paletteProxy = sub_0200A72C(plttResource, imageProxy); + offset = NNS_G2dGetImagePaletteLocation(paletteProxy, NNS_G2D_VRAM_TYPE_2DMAIN); + + DC_FlushRange(buf, 32); + GX_LoadOBJPltt(buf, offset, 32); + + Heap_FreeToHeap(buf); +} + +static void DrawPokemonPreviewWindow(PokemonPreview *preview, u8 palette, u16 tile) +{ + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile, + preview->x - 1, + preview->y - 1, + 1, + 1, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 1, + preview->x, + preview->y - 1, + POKEMON_SPRITE_FRAME_WIDTH_TILES, + 1, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 2, + preview->x + POKEMON_SPRITE_FRAME_WIDTH_TILES, + preview->y - 1, + 1, + 1, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 4, + preview->x, + preview->y, + POKEMON_SPRITE_FRAME_WIDTH_TILES, + POKEMON_SPRITE_FRAME_HEIGHT_TILES, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 3, + preview->x - 1, + preview->y, + 1, + POKEMON_SPRITE_FRAME_HEIGHT_TILES, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 5, + preview->x + POKEMON_SPRITE_FRAME_WIDTH_TILES, + preview->y, + 1, + POKEMON_SPRITE_FRAME_HEIGHT_TILES, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 6, + preview->x - 1, + preview->y + POKEMON_SPRITE_FRAME_HEIGHT_TILES, + 1, + 1, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 7, + preview->x, + preview->y + POKEMON_SPRITE_FRAME_HEIGHT_TILES, + POKEMON_SPRITE_FRAME_WIDTH_TILES, + 1, + palette); + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + tile + 8, + preview->x + POKEMON_SPRITE_FRAME_WIDTH_TILES, + preview->y + POKEMON_SPRITE_FRAME_HEIGHT_TILES, + 1, + 1, + palette); + + Bg_ScheduleTilemapTransfer(preview->bgConfig, preview->bgLayer); +} + +static void ErasePokemonPreviewWindow(PokemonPreview *preview) +{ + Bg_FillTilemapRect(preview->bgConfig, + preview->bgLayer, + 0, + preview->x - 1, + preview->y - 1, + POKEMON_SPRITE_FRAME_WIDTH_TILES + 2, + POKEMON_SPRITE_FRAME_HEIGHT_TILES + 2, + 0); + Bg_ScheduleTilemapTransfer(preview->bgConfig, preview->bgLayer); +} diff --git a/src/roaming_pokemon.c b/src/roaming_pokemon.c index 2daa4aa12b..d4488a2527 100644 --- a/src/roaming_pokemon.c +++ b/src/roaming_pokemon.c @@ -291,7 +291,7 @@ void RoamingPokemon_ActivateSlot(SaveData *saveData, const u8 slot) v0 = Pokemon_New(4); Pokemon_Init(v0); - Pokemon_InitWith(v0, species, level, 32, 0, 0, 1, TrainerInfo_ID_LowHalf(v4)); + Pokemon_InitWith(v0, species, level, 32, FALSE, 0, OTID_SET, TrainerInfo_ID_LowHalf(v4)); sub_0202D980(v1, 7, 0); sub_0202D980(v1, 8, 1); sub_0202D980(v1, 2, Pokemon_GetValue(v0, MON_DATA_COMBINED_IVS, NULL)); diff --git a/src/scrcmd.c b/src/scrcmd.c index 879bd92791..13a145f07b 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -9,7 +9,6 @@ #include "consts/scrcmd.h" #include "struct_decls/pokedexdata_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_decls/struct_02014EC4_decl.h" #include "struct_decls/struct_0202440C_decl.h" #include "struct_decls/struct_02025CCC_decl.h" @@ -54,7 +53,6 @@ #include "overlay005/ov5_021DDAE4.h" #include "overlay005/ov5_021DFB54.h" #include "overlay005/ov5_021E1B08.h" -#include "overlay005/ov5_021E1D20.h" #include "overlay005/ov5_021E779C.h" #include "overlay005/ov5_021EA874.h" #include "overlay005/ov5_021ECC20.h" @@ -63,9 +61,9 @@ #include "overlay005/ov5_021F0E84.h" #include "overlay005/ov5_021F6454.h" #include "overlay005/ov5_021F77A8.h" +#include "overlay005/save_info_window.h" #include "overlay005/struct_ov5_021DC1A4_decl.h" #include "overlay005/struct_ov5_021DD42C.h" -#include "overlay005/struct_ov5_021E1FF4_decl.h" #include "overlay005/vs_seeker.h" #include "overlay006/ov6_0223E140.h" #include "overlay006/ov6_02242AF0.h" @@ -111,6 +109,7 @@ #include "map_header_data.h" #include "map_object.h" #include "map_object_move.h" +#include "menu.h" #include "message.h" #include "message_util.h" #include "party.h" @@ -119,6 +118,7 @@ #include "pokemon.h" #include "pokeradar.h" #include "poketch_data.h" +#include "render_window.h" #include "roaming_pokemon.h" #include "rtc.h" #include "save_player.h" @@ -131,9 +131,7 @@ #include "text.h" #include "trainer_data.h" #include "trainer_info.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02014D38.h" #include "unk_0201D15C.h" @@ -2357,7 +2355,7 @@ static BOOL ScrCmd_OpenMessage(ScriptContext *ctx) FieldSystem *fieldSystem = ctx->fieldSystem; u8 *isMsgBoxOpen = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_IS_MSG_BOX_OPEN); - FieldMessage_AddWindow(fieldSystem->unk_08, FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_WINDOW), 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_WINDOW), 3); FieldMessage_DrawWindow(FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_WINDOW), SaveData_Options(ctx->fieldSystem->saveData)); *isMsgBoxOpen = TRUE; @@ -2370,7 +2368,7 @@ static BOOL ScrCmd_CloseMessage(ScriptContext *ctx) Window *window = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_WINDOW); u8 *v2 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_IS_MSG_BOX_OPEN); - sub_0200E084(window, 0); + Window_EraseMessageBox(window, 0); Window_Remove(window); *v2 = 0; @@ -2428,17 +2426,17 @@ static BOOL ScriptContext_ScrollBG3(ScriptContext *ctx) if (*distanceX != 0) { if (*directionX == 0) { - Bg_SetOffset(fieldSystem->unk_08, 3, 1, *distanceX); + Bg_SetOffset(fieldSystem->bgConfig, 3, 1, *distanceX); } else { - Bg_SetOffset(fieldSystem->unk_08, 3, 2, *distanceX); + Bg_SetOffset(fieldSystem->bgConfig, 3, 2, *distanceX); } } if (*distanceY != 0) { if (*directionY == 0) { - Bg_SetOffset(fieldSystem->unk_08, 3, 4, *distanceY); + Bg_SetOffset(fieldSystem->bgConfig, 3, 4, *distanceY); } else { - Bg_SetOffset(fieldSystem->unk_08, 3, 5, *distanceY); + Bg_SetOffset(fieldSystem->bgConfig, 3, 5, *distanceY); } } @@ -2658,12 +2656,12 @@ static BOOL ScrCmd_03C(ScriptContext *ctx) static BOOL ScrCmd_03E(ScriptContext *ctx) { FieldSystem *fieldSystem = ctx->fieldSystem; - UIControlData **v1 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_UI_CONTROL); + Menu **v1 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_UI_CONTROL); u16 v2 = ScriptContext_ReadHalfWord(ctx); - sub_0200DAA4(fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + LoadStandardWindowGraphics(fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - *v1 = sub_02002100(fieldSystem->unk_08, &Unk_020EAB84, 1024 - (18 + 12) - 9, 11, 4); + *v1 = Menu_MakeYesNoChoice(fieldSystem->bgConfig, &Unk_020EAB84, 1024 - (18 + 12) - 9, 11, 4); ctx->data[0] = v2; ScriptContext_Pause(ctx, sub_02040824); @@ -2675,10 +2673,10 @@ static BOOL sub_02040824(ScriptContext *ctx) { u32 v0; FieldSystem *fieldSystem = ctx->fieldSystem; - UIControlData **v2 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_UI_CONTROL); + Menu **v2 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_UI_CONTROL); u16 *v3 = FieldSystem_GetVarPointer(fieldSystem, ctx->data[0]); - v0 = sub_02002114(*v2, 4); + v0 = Menu_ProcessInputAndHandleExit(*v2, 4); if (v0 == 0xffffffff) { return 0; @@ -2699,7 +2697,7 @@ static BOOL ScrCmd_18D(ScriptContext *ctx) Window *v1 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_WINDOW); v0 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_SAVING_ICON); - *v0 = sub_0200E7FC(v1, 1024 - (18 + 12)); + *v0 = Window_AddWaitDial(v1, 1024 - (18 + 12)); return 0; } @@ -2709,7 +2707,7 @@ static BOOL ScrCmd_18E(ScriptContext *ctx) void **v0; v0 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_SAVING_ICON); - DeleteWaitDial(*v0); + DestroyWaitDial(*v0); return 0; } @@ -3561,7 +3559,7 @@ static BOOL ScrCmd_192(ScriptContext *ctx) void **v0; v0 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, 19); - *v0 = sub_0203D50C(ctx->fieldSystem->unk_10, 32); + *v0 = sub_0203D50C(ctx->fieldSystem->taskManager, 32); return 1; } @@ -3928,13 +3926,13 @@ BOOL sub_02041D60(ScriptContext *ctx) static BOOL ScrCmd_0A1(ScriptContext *ctx) { - FieldTask_StartFieldMap(ctx->fieldSystem->unk_10); + FieldTask_StartFieldMap(ctx->fieldSystem->taskManager); return 1; } static BOOL ScrCmd_1F8(ScriptContext *ctx) { - FieldTask_FinishFieldMap(ctx->fieldSystem->unk_10); + FieldTask_FinishFieldMap(ctx->fieldSystem->taskManager); return 1; } @@ -4015,8 +4013,8 @@ static BOOL ScrCmd_208(ScriptContext *ctx) u16 v1 = ScriptContext_GetVar(ctx); u16 v2 = ScriptContext_GetVar(ctx); - sub_0200DAA4(ctx->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - *v0 = sub_0200EBF0(ctx->fieldSystem->unk_08, 3, 10, 5, 11, 1024 - (18 + 12) - 9, v1, v2, 4); + LoadStandardWindowGraphics(ctx->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + *v0 = DrawPokemonPreview(ctx->fieldSystem->bgConfig, 3, 10, 5, 11, 1024 - (18 + 12) - 9, v1, v2, 4); sub_020451B4(ctx->fieldSystem, v1); return 0; @@ -4029,9 +4027,9 @@ static BOOL ScrCmd_28C(ScriptContext *ctx) u16 v2 = ScriptContext_GetVar(ctx); v0 = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(ctx->fieldSystem->saveData), v2); - sub_0200DAA4(ctx->fieldSystem->unk_08, 3, 1024 - (18 + 12) - 9, 11, 0, 4); + LoadStandardWindowGraphics(ctx->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 0, 4); - *v1 = sub_0200EC48(ctx->fieldSystem->unk_08, 3, 10, 5, 11, 1024 - (18 + 12) - 9, v0, 4); + *v1 = DrawPokemonPreviewFromStruct(ctx->fieldSystem->bgConfig, 3, 10, 5, 11, 1024 - (18 + 12) - 9, v0, 4); sub_020451B4(ctx->fieldSystem, Pokemon_GetValue(v0, MON_DATA_SPECIES, NULL)); return 0; @@ -4127,7 +4125,7 @@ static BOOL ScrCmd_0A6(ScriptContext *ctx) u16 *v1 = ScriptContext_GetVarPointer(ctx); u16 v2 = ScriptContext_GetVar(ctx); - sub_0203DAC0(ctx->fieldSystem->unk_10, v1, ctx->fieldSystem->saveData, v0, v2); + sub_0203DAC0(ctx->fieldSystem->taskManager, v1, ctx->fieldSystem->saveData, v0, v2); return 1; } @@ -4342,7 +4340,7 @@ static BOOL ScrCmd_0AD(ScriptContext *ctx) static BOOL ScrCmd_0AE(ScriptContext *ctx) { - sub_0203DDDC(ctx->fieldSystem->unk_10); + sub_0203DDDC(ctx->fieldSystem->taskManager); return 1; } @@ -4358,7 +4356,7 @@ static BOOL ScrCmd_0AF(ScriptContext *ctx) static BOOL ScrCmd_0B0(ScriptContext *ctx) { - sub_02052E58(ctx->fieldSystem->unk_10); + sub_02052E58(ctx->fieldSystem->taskManager); return 1; } @@ -4543,7 +4541,7 @@ static BOOL ScrCmd_243(ScriptContext *ctx) u16 *v2 = ScriptContext_GetVarPointer(ctx); *v2 = 0xffff; - sub_0203D80C(ctx->fieldSystem->unk_10, v1, v2, NULL); + sub_0203D80C(ctx->fieldSystem->taskManager, v1, v2, NULL); return 1; } @@ -4558,7 +4556,7 @@ static BOOL ScrCmd_244(ScriptContext *ctx) *v2 = 0xffff; *v3 = 0xffff; - sub_0203D80C(ctx->fieldSystem->unk_10, v1, v2, v3); + sub_0203D80C(ctx->fieldSystem->taskManager, v1, v2, v3); return 1; } @@ -4580,7 +4578,7 @@ static BOOL ScrCmd_FadeScreen(ScriptContext *ctx) u16 type = ScriptContext_ReadHalfWord(ctx); u16 color = ScriptContext_ReadHalfWord(ctx); - sub_0200F174(0, type, type, color, transition, frames, HEAP_ID_FIELD); + StartScreenTransition(0, type, type, color, transition, frames, HEAP_ID_FIELD); sub_0200F32C(0); sub_0200F32C(1); @@ -4595,7 +4593,7 @@ static BOOL ScrCmd_WaitFadeScreen(ScriptContext *ctx) static BOOL ScriptContext_ScreenWipeDone(ScriptContext *ctx) { - return ScreenWipe_Done() == TRUE; + return IsScreenTransitionDone() == TRUE; } static BOOL ScrCmd_Warp(ScriptContext *ctx) @@ -4623,14 +4621,14 @@ static BOOL ScrCmd_203(ScriptContext *ctx) v3 = ScriptContext_ReadHalfWord(ctx); v4 = -1; - sub_02054800(ctx->fieldSystem->unk_10, v0, v4, v1, v2, v3); + sub_02054800(ctx->fieldSystem->taskManager, v0, v4, v1, v2, v3); return 1; } static BOOL ScrCmd_204(ScriptContext *ctx) { - sub_02054864(ctx->fieldSystem->unk_10); + sub_02054864(ctx->fieldSystem->taskManager); return 1; } @@ -4929,7 +4927,7 @@ static BOOL ScrCmd_0F6(ScriptContext *ctx) v1 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, 19); v0 = *v1; - sub_0205167C(ctx->fieldSystem->unk_10, v0->unk_2C, (0x4 | 0x1)); + sub_0205167C(ctx->fieldSystem->taskManager, v0->unk_2C, (0x4 | 0x1)); Heap_FreeToHeap(v0); *v1 = NULL; @@ -4985,7 +4983,7 @@ static BOOL ScrCmd_11E(ScriptContext *ctx) const PokedexData *v0 = SaveData_Pokedex(ctx->fieldSystem->saveData); u16 *v1 = ScriptContext_GetVarPointer(ctx); - *v1 = sub_02026EAC(v0); + *v1 = Pokedex_CountSeenSinnoh(v0); return 0; } @@ -5003,7 +5001,7 @@ static BOOL ScrCmd_120(ScriptContext *ctx) const PokedexData *v0 = SaveData_Pokedex(ctx->fieldSystem->saveData); u16 *v1 = ScriptContext_GetVarPointer(ctx); - *v1 = sub_02026E0C(v0); + *v1 = Pokedex_CountSeenNational(v0); return 0; } @@ -5162,10 +5160,10 @@ static BOOL ScrCmd_CheckSaveType(ScriptContext *ctx) static BOOL ScrCmd_12D(ScriptContext *ctx) { FieldSystem *fieldSystem = ctx->fieldSystem; - u16 *v1 = ScriptContext_GetVarPointer(ctx); + u16 *destVarResult = ScriptContext_GetVarPointer(ctx); - *v1 = ov5_021E200C(fieldSystem); - return 0; + *destVarResult = FieldSystem_Save(fieldSystem); + return FALSE; } static BOOL ScrCmd_2D6(ScriptContext *ctx) @@ -5493,7 +5491,7 @@ static BOOL sub_02043A4C(ScriptContext *ctx) static BOOL ScrCmd_153(ScriptContext *ctx) { - sub_02054708(ctx->fieldSystem->unk_10); + sub_02054708(ctx->fieldSystem->taskManager); return 1; } @@ -6482,12 +6480,12 @@ static BOOL ScrCmd_218(ScriptContext *ctx) u16 *v1 = ScriptContext_GetVarPointer(ctx); u16 v2, v3, v4, v5; - v2 = sub_02026EAC(v0); + v2 = Pokedex_CountSeenSinnoh(v0); v3 = LCRNG_Next() % v2; *v1 = 25; for (v4 = 1, v5 = 0; v4 <= NATIONAL_DEX_COUNT; v4++) { - if ((Pokedex_HasEncountered(v0, v4) == 1) && (Pokemon_SinnohDexNumber(v4) != 0)) { + if (Pokedex_HasSeenSpecies(v0, v4) == TRUE && Pokemon_SinnohDexNumber(v4) != FALSE) { if (v5 == v3) { *v1 = v4; break; @@ -6598,7 +6596,7 @@ static BOOL ScrCmd_22D(ScriptContext *ctx) sub_02027454(SaveData_Pokedex(ctx->fieldSystem->saveData)); TrainerInfo_GiveNationalDex(SaveData_GetTrainerInfo(ctx->fieldSystem->saveData)); } else if (v0 == 2) { - *v1 = Pokedex_IsNationalUnlocked(SaveData_Pokedex(ctx->fieldSystem->saveData)); + *v1 = Pokedex_IsNationalDexObtained(SaveData_Pokedex(ctx->fieldSystem->saveData)); } else { GF_ASSERT(FALSE); } @@ -6784,7 +6782,7 @@ static void sub_020451B4(FieldSystem *fieldSystem, u16 param1) Pokemon *v1 = Pokemon_New(32); Pokemon_Init(v1); - Pokemon_InitWith(v1, param1, 50, 32, 0, 0, 0, 0); + Pokemon_InitWith(v1, param1, 50, 32, FALSE, 0, OTID_NOT_SET, 0); sub_020272A4(v0, v1); Heap_FreeToHeap(v1); @@ -6905,8 +6903,8 @@ static BOOL ScrCmd_263(ScriptContext *ctx) v5 = Party_GetPokemonBySlotIndex(v1, v2); v3 = Pokemon_GetValue(v5, MON_DATA_SPECIES, NULL); - if (v3 == 386) { - Pokemon_SetValue(v5, 112, &v0); + if (v3 == SPECIES_DEOXYS) { + Pokemon_SetValue(v5, MON_DATA_FORM, &v0); Pokemon_CalcLevelAndStats(v5); sub_0202736C(v6, v5); } @@ -6932,7 +6930,7 @@ static BOOL ScrCmd_264(ScriptContext *ctx) v6 = Pokemon_GetValue(v0, MON_DATA_GENDER, NULL); v5 = Pokemon_GetValue(v0, MON_DATA_IS_EGG, NULL); - if ((v2 == 415) && (v5 == 0)) { + if ((v2 == SPECIES_COMBEE) && (v5 == 0)) { if (v6 == 0) { v3 = 1; } @@ -6974,7 +6972,7 @@ static BOOL ScrCmd_267(ScriptContext *ctx) { u16 v0 = ScriptContext_GetVar(ctx); - sub_0203E414(ctx->fieldSystem->unk_10, v0); + sub_0203E414(ctx->fieldSystem->taskManager, v0); return 1; } @@ -7582,9 +7580,9 @@ static BOOL ScrCmd_29F(ScriptContext *ctx) u16 v0 = ScriptContext_GetVar(ctx); if (v0 == 0) { - ov6_0223E384(ctx->fieldSystem->unk_10); + ov6_0223E384(ctx->fieldSystem->taskManager); } else { - ov6_0223E4EC(ctx->fieldSystem->unk_10); + ov6_0223E4EC(ctx->fieldSystem->taskManager); } return 1; @@ -7746,27 +7744,27 @@ static BOOL ScrCmd_2BE(ScriptContext *ctx) static BOOL ScrCmd_2C1(ScriptContext *ctx) { FieldSystem *fieldSystem = ctx->fieldSystem; - UnkStruct_ov5_021E1FF4 **v1 = FieldSystem_GetScriptMemberPtr(fieldSystem, 40); + SaveInfoWindow **saveInfoWin = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_SAVE_INFO_WINDOW); if (!SaveData_OverwriteCheck(fieldSystem->saveData)) { - *v1 = ov5_021E1F98(fieldSystem, 4, 3); - ov5_021E1F04(*v1); + *saveInfoWin = SaveInfoWindow_New(fieldSystem, HEAP_ID_FIELD, BG_LAYER_MAIN_3); + SaveInfoWindow_Draw(*saveInfoWin); } - return 0; + return FALSE; } static BOOL ScrCmd_2C2(ScriptContext *ctx) { FieldSystem *fieldSystem = ctx->fieldSystem; - UnkStruct_ov5_021E1FF4 **v1 = FieldSystem_GetScriptMemberPtr(fieldSystem, 40); + SaveInfoWindow **saveInfoWin = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_SAVE_INFO_WINDOW); if (!SaveData_OverwriteCheck(fieldSystem->saveData)) { - ov5_021E1F7C(*v1); - ov5_021E1FF4(*v1); + SaveInfoWindow_Erase(*saveInfoWin); + SaveInfoWindow_Free(*saveInfoWin); } - return 0; + return FALSE; } static BOOL ScrCmd_2C3(ScriptContext *ctx) @@ -8178,7 +8176,7 @@ static u32 sub_0204676C(SaveData *saveData) for (v0 = 0; v0 < v5; v0++) { v1 = Party_GetPokemonBySlotIndex(v4, v0); - if ((Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL) == 479) && (Pokemon_GetValue(v1, MON_DATA_IS_EGG, NULL) == 0)) { + if ((Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL) == SPECIES_ROTOM) && (Pokemon_GetValue(v1, MON_DATA_IS_EGG, NULL) == 0)) { v3 |= 1 << Pokemon_GetValue(v1, MON_DATA_FORM, NULL); } } @@ -8194,7 +8192,7 @@ static u32 sub_0204676C(SaveData *saveData) v7 = sub_02026218(v6, v0); v2 = sub_02026220(v7); - if ((BoxPokemon_GetValue(v2, 5, NULL) == 479) && (BoxPokemon_GetValue(v2, MON_DATA_IS_EGG, NULL) == 0)) { + if ((BoxPokemon_GetValue(v2, MON_DATA_SPECIES, NULL) == SPECIES_ROTOM) && (BoxPokemon_GetValue(v2, MON_DATA_IS_EGG, NULL) == 0)) { v3 |= 1 << BoxPokemon_GetValue(v2, MON_DATA_FORM, NULL); } } @@ -8210,7 +8208,7 @@ static u32 sub_0204676C(SaveData *saveData) for (v0 = 0; v0 < (5 * 6); v0++) { v2 = sub_02079C9C(v8, v9, v0); - if ((BoxPokemon_GetValue(v2, 5, NULL) == 479) && (BoxPokemon_GetValue(v2, MON_DATA_IS_EGG, NULL) == 0)) { + if ((BoxPokemon_GetValue(v2, MON_DATA_SPECIES, NULL) == SPECIES_ROTOM) && (BoxPokemon_GetValue(v2, MON_DATA_IS_EGG, NULL) == 0)) { v3 |= 1 << BoxPokemon_GetValue(v2, MON_DATA_FORM, NULL); } } @@ -8346,7 +8344,7 @@ static BOOL ScrCmd_328(ScriptContext *ctx) for (v3 = 0; v3 < v4; v3++) { v5 = Party_GetPokemonBySlotIndex(v1, v3); - if ((Pokemon_GetValue(v5, MON_DATA_IS_EGG, NULL) == 0) && (Pokemon_GetValue(v5, MON_DATA_SPECIES, NULL) == 487)) { + if ((Pokemon_GetValue(v5, MON_DATA_IS_EGG, NULL) == 0) && (Pokemon_GetValue(v5, MON_DATA_SPECIES, NULL) == SPECIES_GIRATINA)) { sub_0202736C(SaveData_Pokedex(fieldSystem->saveData), v5); } } @@ -8370,7 +8368,7 @@ static BOOL ScrCmd_32B(ScriptContext *ctx) if (Pokemon_GetValue(v4, MON_DATA_IS_EGG, NULL) == 0) { v0 = Pokemon_GetValue(v4, MON_DATA_SPECIES, NULL); - if (v0 == 486) { + if (v0 == SPECIES_REGIGIGAS) { v1 = Pokemon_GetValue(v4, MON_DATA_FATEFUL_ENCOUNTER, NULL); if (v1 == 1) { diff --git a/src/script_manager.c b/src/script_manager.c index f8223a02e5..675ffa7523 100644 --- a/src/script_manager.c +++ b/src/script_manager.c @@ -52,7 +52,7 @@ void ScriptManager_Set(FieldSystem *fieldSystem, u16 scriptID, MapObject *object void ScriptManager_SetApproachingTrainer(FieldSystem *fieldSystem, MapObject *object, int sightRange, int direction, int scriptID, int trainerID, int trainerType, int approachNum) { - ScriptManager *scriptManager = TaskManager_Environment(fieldSystem->unk_10); + ScriptManager *scriptManager = TaskManager_Environment(fieldSystem->taskManager); ApproachingTrainer *trainer = &scriptManager->trainers[approachNum]; trainer->sightRange = sightRange; @@ -187,7 +187,7 @@ static void sub_0203EAF4(FieldSystem *fieldSystem, ScriptContext *ctx, u16 scrip ScriptContext_Start(ctx, ctx->scripts); sub_0203F0E4(ctx, offsetID); - ScriptContext_SetTaskManager(ctx, fieldSystem->unk_10); + ScriptContext_SetTaskManager(ctx, fieldSystem->taskManager); } static u16 ScriptContext_LoadAndOffsetID(FieldSystem *fieldSystem, ScriptContext *ctx, u16 scriptID) @@ -408,8 +408,8 @@ void *ScriptManager_GetMemberPtr(ScriptManager *scriptManager, u32 member) return &scriptManager->coinWindow; case SCRIPT_MANAGER_MONEY_WINDOW: return &scriptManager->moneyWindow; - case 40: - return &scriptManager->unk_D8; + case SCRIPT_MANAGER_SAVE_INFO_WINDOW: + return &scriptManager->saveInfoWin; case SCRIPT_DATA_PARAMETER_0: case SCRIPT_DATA_PARAMETER_1: case SCRIPT_DATA_PARAMETER_2: @@ -434,7 +434,7 @@ void *ScriptManager_GetMemberPtr(ScriptManager *scriptManager, u32 member) void *FieldSystem_GetScriptMemberPtr(FieldSystem *fieldSystem, u32 member) { - ScriptManager *script = TaskManager_Environment(fieldSystem->unk_10); + ScriptManager *script = TaskManager_Environment(fieldSystem->taskManager); GF_ASSERT(script->magic == SCRIPT_MANAGER_MAGIC_NUMBER); @@ -443,7 +443,7 @@ void *FieldSystem_GetScriptMemberPtr(FieldSystem *fieldSystem, u32 member) void sub_0203F0C0(FieldSystem *fieldSystem) { - ScriptManager *scriptManager = TaskManager_Environment(fieldSystem->unk_10); + ScriptManager *scriptManager = TaskManager_Environment(fieldSystem->taskManager); if (sub_0203A9C8(fieldSystem) == 1) { scriptManager->function = sub_0203AB00; diff --git a/src/strbuf.c b/src/strbuf.c index ac64261ad9..67b8da6d7e 100644 --- a/src/strbuf.c +++ b/src/strbuf.c @@ -90,28 +90,28 @@ void Strbuf_FormatInt(Strbuf *dst, int num, u32 maxDigits, enum PaddingMode padd 1000000000 }; static const charcode_t sDigits_JP[] = { - CHAR_JP_0, - CHAR_JP_1, - CHAR_JP_2, - CHAR_JP_3, - CHAR_JP_4, - CHAR_JP_5, - CHAR_JP_6, - CHAR_JP_7, - CHAR_JP_8, - CHAR_JP_9, + CHAR_WIDE_0, + CHAR_WIDE_1, + CHAR_WIDE_2, + CHAR_WIDE_3, + CHAR_WIDE_4, + CHAR_WIDE_5, + CHAR_WIDE_6, + CHAR_WIDE_7, + CHAR_WIDE_8, + CHAR_WIDE_9, }; static const charcode_t sDigits_EN[] = { - CHAR_EN_0, - CHAR_EN_1, - CHAR_EN_2, - CHAR_EN_3, - CHAR_EN_4, - CHAR_EN_5, - CHAR_EN_6, - CHAR_EN_7, - CHAR_EN_8, - CHAR_EN_9, + CHAR_0, + CHAR_1, + CHAR_2, + CHAR_3, + CHAR_4, + CHAR_5, + CHAR_6, + CHAR_7, + CHAR_8, + CHAR_9, }; Strbuf_Check(dst); @@ -125,7 +125,7 @@ void Strbuf_FormatInt(Strbuf *dst, int num, u32 maxDigits, enum PaddingMode padd if (negative) { num *= -1; - dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_JP_MINUS : CHAR_EN_MINUS; + dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_WIDE_MINUS : CHAR_MINUS; } u32 div = sPowersOfTen[maxDigits - 1]; @@ -134,13 +134,13 @@ void Strbuf_FormatInt(Strbuf *dst, int num, u32 maxDigits, enum PaddingMode padd num -= div * digit; if (paddingMode == PADDING_MODE_ZEROES) { - dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_JP_QUESTION; + dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_WIDE_QUESTION; // If we hit a non-zero digit, flip the padding mode off } else if (digit != 0 || div == 1) { paddingMode = PADDING_MODE_ZEROES; - dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_JP_QUESTION; + dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_WIDE_QUESTION; } else if (paddingMode == PADDING_MODE_SPACES) { - dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_JP_SPACE : CHAR_NUM_SPACE; + dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_WIDE_SPACE : CHAR_NUM_SPACE; } div /= 10; @@ -178,28 +178,28 @@ void Strbuf_FormatU64(Strbuf *dst, u64 num, u32 maxDigits, enum PaddingMode padd 10000000000000000000 }; static const charcode_t sDigits_JP[] = { - CHAR_JP_0, - CHAR_JP_1, - CHAR_JP_2, - CHAR_JP_3, - CHAR_JP_4, - CHAR_JP_5, - CHAR_JP_6, - CHAR_JP_7, - CHAR_JP_8, - CHAR_JP_9, + CHAR_WIDE_0, + CHAR_WIDE_1, + CHAR_WIDE_2, + CHAR_WIDE_3, + CHAR_WIDE_4, + CHAR_WIDE_5, + CHAR_WIDE_6, + CHAR_WIDE_7, + CHAR_WIDE_8, + CHAR_WIDE_9, }; static const charcode_t sDigits_EN[] = { - CHAR_EN_0, - CHAR_EN_1, - CHAR_EN_2, - CHAR_EN_3, - CHAR_EN_4, - CHAR_EN_5, - CHAR_EN_6, - CHAR_EN_7, - CHAR_EN_8, - CHAR_EN_9, + CHAR_0, + CHAR_1, + CHAR_2, + CHAR_3, + CHAR_4, + CHAR_5, + CHAR_6, + CHAR_7, + CHAR_8, + CHAR_9, }; Strbuf_Check(dst); @@ -213,7 +213,7 @@ void Strbuf_FormatU64(Strbuf *dst, u64 num, u32 maxDigits, enum PaddingMode padd if (negative) { num *= -1; - dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_JP_MINUS : CHAR_EN_MINUS; + dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_WIDE_MINUS : CHAR_MINUS; } u64 div = sPowersOfTen[maxDigits - 1]; @@ -222,12 +222,12 @@ void Strbuf_FormatU64(Strbuf *dst, u64 num, u32 maxDigits, enum PaddingMode padd num -= div * digit; if (paddingMode == PADDING_MODE_ZEROES) { - dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_JP_QUESTION; + dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_WIDE_QUESTION; } else if ((digit != 0) || (div == 1)) { paddingMode = PADDING_MODE_ZEROES; - dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_JP_QUESTION; + dst->data[dst->size++] = (digit < 10) ? digitSet[digit] : CHAR_WIDE_QUESTION; } else if (paddingMode == PADDING_MODE_SPACES) { - dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_JP_SPACE : CHAR_EN_SPACE; + dst->data[dst->size++] = (charsetMode == CHARSET_MODE_JP) ? CHAR_WIDE_SPACE : CHAR_SPACE; } div /= 10; @@ -248,9 +248,9 @@ u64 Strbuf_AtoI(const Strbuf *src, BOOL *success) } for (int i = (src->size - 1); i >= 0; i--) { - u64 digit = src->data[i] - CHAR_JP_0; + u64 digit = src->data[i] - CHAR_WIDE_0; if (digit >= 10) { - digit = src->data[i] - CHAR_EN_0; + digit = src->data[i] - CHAR_0; if (digit >= 10) { *success = FALSE; @@ -473,8 +473,8 @@ void Strbuf_UpperChar(Strbuf *strbuf, int i) Strbuf_Check(strbuf); if (strbuf->size > i) { - if (strbuf->data[i] >= CHAR_EN_a && strbuf->data[i] <= CHAR_EN_z) { - strbuf->data[i] -= (CHAR_EN_a - CHAR_EN_A); + if (strbuf->data[i] >= CHAR_a && strbuf->data[i] <= CHAR_z) { + strbuf->data[i] -= (CHAR_a - CHAR_A); } } } diff --git a/src/string_list.c b/src/string_list.c new file mode 100644 index 0000000000..272d84e6c9 --- /dev/null +++ b/src/string_list.c @@ -0,0 +1,106 @@ +#include "string_list.h" + +#include +#include + +#include "heap.h" +#include "message.h" +#include "strbuf.h" + +static StringList *FindFirstEmptyEntry(StringList *list, u32 *outHeapID); +static void FreeEntries(StringList *list); + +StringList *StringList_New(u32 capacity, u32 heapID) +{ + StringList *list = Heap_AllocFromHeap(heapID, sizeof(StringList) * (capacity + 1)); + + if (list) { + u32 i; + for (i = 0; i < capacity; i++) { + list[i].entry = NULL; + list[i].index = 0; + } + + // This entry is special; it should always have an index value equal + // to the heap on which this list was allocated. + list[i].entry = STRING_LIST_TERMINATOR; + list[i].index = heapID; + } + + return list; +} + +void StringList_Free(StringList *list) +{ + FreeEntries(list); + Heap_FreeToHeap(list); +} + +void StringList_AddFromMessageBank(StringList *list, const MessageLoader *loader, u32 bankEntry, u32 index) +{ + u32 tmp; + list = FindFirstEmptyEntry(list, &tmp); + + if (list) { + list->entry = MessageLoader_GetNewStrbuf(loader, bankEntry); + list->index = index; + } +} + +void StringList_AddFromStrbuf(StringList *list, const Strbuf *strbuf, u32 index) +{ + u32 heapID; + list = FindFirstEmptyEntry(list, &heapID); + + if (list) { + list->entry = Strbuf_Clone(strbuf, heapID); + list->index = index; + } +} + +void StringList_AddFromEntry(StringList *list, const StringList *entry) +{ + u32 tmp; + list = FindFirstEmptyEntry(list, &tmp); + + if (list) { + list->entry = entry->entry; + list->index = entry->index; + } +} + +static StringList *FindFirstEmptyEntry(StringList *list, u32 *outHeapID) +{ + while (list->entry != NULL) { + if (list->entry == STRING_LIST_TERMINATOR) { + GF_ASSERT(FALSE); + return NULL; + } + + list++; + } + + StringList *empty = list; + + // Keep going, so we can also get the heap ID + while (list->entry != STRING_LIST_TERMINATOR) { + list++; + } + + *outHeapID = list->index; + return empty; +} + +static void FreeEntries(StringList *list) +{ + StringList *tmp = list; + while (tmp->entry != STRING_LIST_TERMINATOR) { + if (tmp->entry == NULL) { + break; + } + + Strbuf_Free(tmp->entry); + tmp->entry = NULL; + tmp++; + } +} diff --git a/src/text.c b/src/text.c index 5933628e4a..920e8feff0 100644 --- a/src/text.c +++ b/src/text.c @@ -6,6 +6,8 @@ #include "constants/heap.h" #include "constants/narc.h" +#include "fonts/pl_font.naix" + #include "bg_window.h" #include "font.h" #include "graphics.h" @@ -324,7 +326,7 @@ static u8 *Text_LoadScreenIndicatorGfx(void) NNSG2dCharacterData *g2dCharData; u8 *gfx = Heap_AllocFromHeap(HEAP_ID_SYSTEM, 24 * 64); // These numbers are file dimensions. Curiously, this only loads the bottom-screen indicators. - void *ncgr = Graphics_GetCharData(NARC_INDEX_GRAPHIC__PL_FONT, 5, FALSE, &g2dCharData, HEAP_ID_SYSTEM); + void *ncgr = Graphics_GetCharData(NARC_INDEX_GRAPHIC__PL_FONT, screen_indicators_NCGR, FALSE, &g2dCharData, HEAP_ID_SYSTEM); MI_CpuCopy32(g2dCharData->pRawData, gfx, 24 * 64); Heap_FreeToHeap(ncgr); diff --git a/src/trainer_info.c b/src/trainer_info.c index 3a0f4510db..c2e58c581a 100644 --- a/src/trainer_info.c +++ b/src/trainer_info.c @@ -40,7 +40,7 @@ void TrainerInfo_Init(TrainerInfo *info) BOOL TrainerInfo_HasNoName(const TrainerInfo *info) { for (int i = 0; i < TRAINER_NAME_LEN + 1; i++) { - if (info->name[i] != CHAR_EMPTY) { + if (info->name[i] != CHAR_NONE) { return FALSE; } } diff --git a/src/unk_0200112C.c b/src/unk_0200112C.c deleted file mode 100644 index 0193e22f7f..0000000000 --- a/src/unk_0200112C.c +++ /dev/null @@ -1,550 +0,0 @@ -#include "unk_0200112C.h" - -#include -#include -#include - -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" - -#include "overlay084/struct_ov84_02240FA8.h" - -#include "bg_window.h" -#include "colored_arrow.h" -#include "core_sys.h" -#include "font.h" -#include "heap.h" -#include "text.h" - -typedef struct { - u8 unk_00_0 : 4; - u8 unk_00_4 : 4; - u8 unk_01_0 : 4; - u8 unk_02_0 : 6; - u8 unk_03_0 : 6; - u8 unk_04_0 : 7; - u8 unk_04_7 : 1; -} UnkStruct_0200112C_sub1; - -typedef struct UnkStruct_0200112C_t { - UnkStruct_ov84_02240FA8 unk_00; - UnkStruct_0200112C_sub1 unk_1F; - ColoredArrow *unk_24; - u16 unk_28; - u16 unk_2A; - u8 unk_2C; - u8 unk_2D; - u8 unk_2E; - u8 unk_2F; - u8 unk_30; -} BmpList; - -static void sub_020015D0(BmpList *param0, void *param1, u8 param2, u8 param3); -static void sub_02001688(BmpList *param0, u16 param1, u16 param2, u16 param3); -static void sub_02001720(BmpList *param0); -static void sub_02001778(BmpList *param0, u16 param1); -static u8 sub_020017E0(BmpList *param0, u8 param1); -static void sub_02001900(BmpList *param0, u8 param1, u8 param2); -static u8 sub_02001A18(BmpList *param0, u8 param1, u8 param2, u8 param3); -static void sub_02001AD8(BmpList *param0, u8 param1); - -BmpList *sub_0200112C(const UnkStruct_ov84_02240FA8 *param0, u16 param1, u16 param2, u8 param3) -{ - BmpList *v0 = (BmpList *)Heap_AllocFromHeap(param3, sizeof(BmpList)); - - v0->unk_00 = *param0; - v0->unk_24 = ColoredArrow_New(param3); - v0->unk_28 = param1; - v0->unk_2A = param2; - v0->unk_2C = 0; - v0->unk_2D = 0; - v0->unk_2E = 0xff; - v0->unk_2F = 0; - v0->unk_30 = param3; - - v0->unk_1F.unk_00_0 = v0->unk_00.unk_17_4; - v0->unk_1F.unk_00_4 = v0->unk_00.unk_18_0; - v0->unk_1F.unk_01_0 = v0->unk_00.unk_18_4; - v0->unk_1F.unk_02_0 = v0->unk_00.unk_1A_0; - v0->unk_1F.unk_04_0 = v0->unk_00.unk_1A_9; - v0->unk_1F.unk_04_7 = 0; - - if (v0->unk_00.unk_10 < v0->unk_00.unk_12) { - v0->unk_00.unk_12 = v0->unk_00.unk_10; - } - - ColoredArrow_SetColor(v0->unk_24, TEXT_COLOR(v0->unk_00.unk_17_4, v0->unk_00.unk_18_4, v0->unk_00.unk_18_0)); - Window_FillTilemap(v0->unk_00.unk_0C, v0->unk_00.unk_18_0); - sub_02001688(v0, v0->unk_28, 0, v0->unk_00.unk_12); - sub_02001720(v0); - sub_02001AD8(v0, 1); - Window_CopyToVRAM(param0->unk_0C); - - return v0; -} - -u32 sub_02001288(BmpList *param0) -{ - u16 v0, v1; - - param0->unk_2F = 0; - - if (gCoreSys.pressedKeys & PAD_BUTTON_A) { - return param0->unk_00.unk_00[param0->unk_28 + param0->unk_2A].unk_04; - } - - if (gCoreSys.pressedKeys & PAD_BUTTON_B) { - return 0xfffffffe; - } - - if (gCoreSys.pressedKeysRepeatable & PAD_KEY_UP) { - if (sub_02001A18(param0, 1, 1, 0) == 0) { - param0->unk_2F = 1; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeysRepeatable & PAD_KEY_DOWN) { - if (sub_02001A18(param0, 1, 1, 1) == 0) { - param0->unk_2F = 2; - } - - return 0xffffffff; - } - - switch (param0->unk_00.unk_1A_7) { - default: - case 0: - v0 = 0; - v1 = 0; - break; - case 1: - v0 = (gCoreSys.pressedKeysRepeatable & PAD_KEY_LEFT); - v1 = (gCoreSys.pressedKeysRepeatable & PAD_KEY_RIGHT); - break; - case 2: - v0 = (gCoreSys.pressedKeysRepeatable & PAD_BUTTON_L); - v1 = (gCoreSys.pressedKeysRepeatable & PAD_BUTTON_R); - break; - } - - if (v0) { - if (sub_02001A18(param0, 1, (u8)param0->unk_00.unk_12, 0) == 0) { - param0->unk_2F = 3; - } - - return 0xffffffff; - } - - if (v1) { - if (sub_02001A18(param0, 1, (u8)param0->unk_00.unk_12, 1) == 0) { - param0->unk_2F = 4; - } - - return 0xffffffff; - } - - return 0xffffffff; -} - -void sub_02001384(BmpList *param0, u16 *param1, u16 *param2) -{ - if (param1 != NULL) { - *param1 = param0->unk_28; - } - - if (param2 != NULL) { - *param2 = param0->unk_2A; - } - - ColoredArrow_Free(param0->unk_24); - Heap_FreeToHeapExplicit(param0->unk_30, param0); -} - -void sub_020013AC(BmpList *param0) -{ - Window_FillTilemap(param0->unk_00.unk_0C, param0->unk_00.unk_18_0); - sub_02001688(param0, param0->unk_28, 0, param0->unk_00.unk_12); - sub_02001720(param0); - Window_CopyToVRAM(param0->unk_00.unk_0C); -} - -void sub_020013D8(BmpList *param0, u8 param1, u8 param2, u8 param3) -{ - param0->unk_00.unk_17_4 = param1; - param0->unk_00.unk_18_0 = param2; - param0->unk_00.unk_18_4 = param3; -} - -u32 sub_02001408(BmpList *param0, UnkStruct_ov84_02240FA8 *param1, u16 param2, u16 param3, u16 param4, u16 param5, u16 *param6, u16 *param7) -{ - if (param1) { - param0->unk_00 = *param1; - } - - param0->unk_28 = param2; - param0->unk_2A = param3; - param0->unk_2C = 0; - param0->unk_2D = 0; - - if (param5 == PAD_KEY_UP) { - sub_02001A18(param0, param4, 1, 0); - } else if (param5 == PAD_KEY_DOWN) { - sub_02001A18(param0, param4, 1, 1); - } - - if (param6 != NULL) { - *param6 = param0->unk_28; - } - - if (param7 != NULL) { - *param7 = param0->unk_2A; - } - - return 0xffffffff; -} - -void sub_0200147C(BmpList *param0, u8 param1, u8 param2, u8 param3) -{ - param0->unk_1F.unk_00_0 = param1; - param0->unk_1F.unk_00_4 = param2; - param0->unk_1F.unk_01_0 = param3; - param0->unk_1F.unk_04_7 = 1; -} - -void sub_020014D0(BmpList *param0, u16 *param1) -{ - *param1 = (u16)(param0->unk_28 + param0->unk_2A); -} - -void sub_020014DC(BmpList *param0, u16 *param1, u16 *param2) -{ - if (param1 != NULL) { - *param1 = param0->unk_28; - } - - if (param2 != NULL) { - *param2 = param0->unk_2A; - } -} - -u8 sub_020014F0(BmpList *param0) -{ - return param0->unk_2F; -} - -u32 sub_020014F8(BmpList *param0, u16 param1) -{ - return param0->unk_00.unk_00[param1].unk_04; -} - -u32 sub_02001504(BmpList *param0, u8 param1) -{ - u32 v0; - - switch (param1) { - case 0: - v0 = (u32)param0->unk_00.unk_04; - break; - case 1: - v0 = (u32)param0->unk_00.unk_08; - break; - case 2: - v0 = (u32)param0->unk_00.unk_10; - break; - case 3: - v0 = (u32)param0->unk_00.unk_12; - break; - case 5: - v0 = (u32)param0->unk_00.unk_14; - break; - case 6: - v0 = (u32)param0->unk_00.unk_15; - break; - case 7: - v0 = (u32)param0->unk_00.unk_16; - break; - case 8: - v0 = (u32)param0->unk_00.unk_17_0; - break; - case 9: - v0 = (u32)Font_GetAttribute(param0->unk_00.unk_1A_9, 1) + param0->unk_00.unk_1A_3; - break; - case 10: - v0 = (u32)param0->unk_00.unk_17_4; - break; - case 11: - v0 = (u32)param0->unk_00.unk_18_0; - break; - case 12: - v0 = (u32)param0->unk_00.unk_18_4; - break; - case 13: - v0 = (u32)param0->unk_00.unk_1A_0; - break; - case 14: - v0 = (u32)param0->unk_00.unk_1A_3; - break; - case 15: - v0 = (u32)param0->unk_00.unk_1A_7; - break; - case 16: - v0 = (u32)param0->unk_00.unk_1A_9; - break; - case 17: - v0 = (u32)param0->unk_00.unk_1A_15; - break; - case 18: - v0 = (u32)param0->unk_00.unk_0C; - break; - case 19: - v0 = (u32)param0->unk_00.unk_1C; - break; - default: - v0 = 0xffffffff; - } - - return v0; -} - -void sub_020015CC(BmpList *param0, ResourceMetadata *param1) -{ - param0->unk_00.unk_00 = param1; -} - -static void sub_020015D0(BmpList *param0, void *param1, u8 param2, u8 param3) -{ - if (param1 == NULL) { - return; - } - - if (param0->unk_1F.unk_04_7) { - Text_AddPrinterWithParamsColorAndSpacing(param0->unk_00.unk_0C, param0->unk_1F.unk_04_0, param1, param2, param3, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(param0->unk_1F.unk_00_0, param0->unk_1F.unk_01_0, param0->unk_1F.unk_00_4), param0->unk_1F.unk_02_0, 0, NULL); - } else { - Text_AddPrinterWithParamsColorAndSpacing(param0->unk_00.unk_0C, param0->unk_00.unk_1A_9, param1, param2, param3, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(param0->unk_00.unk_17_4, param0->unk_00.unk_18_4, param0->unk_00.unk_18_0), param0->unk_00.unk_1A_0, 0, NULL); - } -} - -static void sub_02001688(BmpList *param0, u16 param1, u16 param2, u16 param3) -{ - int v0; - u8 v1, v2, v3; - - v3 = Font_GetAttribute(param0->unk_00.unk_1A_9, 1) + param0->unk_00.unk_1A_3; - - for (v0 = 0; v0 < param3; v0++) { - if (param0->unk_00.unk_00[param1].unk_04 != 0xfffffffd) { - v1 = param0->unk_00.unk_15; - } else { - v1 = param0->unk_00.unk_14; - } - - v2 = (u8)(((v0 + param2) * v3) + param0->unk_00.unk_17_0); - - if (param0->unk_00.unk_08 != NULL) { - param0->unk_00.unk_08(param0, param0->unk_00.unk_00[param1].unk_04, v2); - } - - sub_020015D0(param0, (void *)param0->unk_00.unk_00[param1].unk_00, v1, v2); - param1++; - } -} - -static void sub_02001720(BmpList *param0) -{ - u8 v0, v1, v2; - - v2 = Font_GetAttribute(param0->unk_00.unk_1A_9, 1) + param0->unk_00.unk_1A_3; - v0 = param0->unk_00.unk_16; - v1 = (u8)((param0->unk_2A * v2) + param0->unk_00.unk_17_0); - - switch (param0->unk_00.unk_1A_15) { - case 0: - ColoredArrow_Print(param0->unk_24, param0->unk_00.unk_0C, v0, v1); - break; - case 1: - break; - case 2: - break; - case 3: - break; - } -} - -static void sub_02001778(BmpList *param0, u16 param1) -{ - u8 v0; - - switch (param0->unk_00.unk_1A_15) { - case 0: - v0 = Font_GetAttribute(param0->unk_00.unk_1A_9, 1) + param0->unk_00.unk_1A_3; - Window_FillRectWithColor(param0->unk_00.unk_0C, (u8)param0->unk_00.unk_18_0, param0->unk_00.unk_16, (u16)(param1 * v0 + param0->unk_00.unk_17_0), 8, 16); - break; - case 1: - case 2: - case 3: - break; - } -} - -static u8 sub_020017E0(BmpList *param0, u8 param1) -{ - u16 v0, v1, v2; - - v1 = param0->unk_2A; - v0 = param0->unk_28; - - if (param1 == 0) { - if (param0->unk_00.unk_12 == 1) { - v2 = 0; - } else { - v2 = (u16)(param0->unk_00.unk_12 - ((param0->unk_00.unk_12 / 2) + (param0->unk_00.unk_12 % 2)) - 1); - } - - if (v0 == 0) { - while (v1 > 0) { - v1--; - - if (param0->unk_00.unk_00[v0 + v1].unk_04 != 0xfffffffd) { - param0->unk_2A = v1; - return 1; - } - } - - return 0; - } - - while (v1 > v2) { - v1--; - - if (param0->unk_00.unk_00[v0 + v1].unk_04 != 0xfffffffd) { - param0->unk_2A = v1; - return 1; - } - } - - v0--; - - param0->unk_2A = v2; - param0->unk_28 = v0; - } else { - if (param0->unk_00.unk_12 == 1) { - v2 = 0; - } else { - v2 = (u16)((param0->unk_00.unk_12 / 2) + (param0->unk_00.unk_12 % 2)); - } - - if (v0 == (param0->unk_00.unk_10 - param0->unk_00.unk_12)) { - while (v1 < (param0->unk_00.unk_12 - 1)) { - v1++; - - if (param0->unk_00.unk_00[v0 + v1].unk_04 != 0xfffffffd) { - param0->unk_2A = v1; - return 1; - } - } - - return 0; - } - - while (v1 < v2) { - v1++; - - if (param0->unk_00.unk_00[v0 + v1].unk_04 != 0xfffffffd) { - param0->unk_2A = v1; - return 1; - } - } - - v0++; - - param0->unk_2A = v2; - param0->unk_28 = v0; - } - - return 2; -} - -static void sub_02001900(BmpList *param0, u8 param1, u8 param2) -{ - u8 v0; - u16 v1; - - if (param1 >= param0->unk_00.unk_12) { - Window_FillTilemap(param0->unk_00.unk_0C, param0->unk_00.unk_18_0); - sub_02001688(param0, param0->unk_28, 0, param0->unk_00.unk_12); - return; - } - - v0 = Font_GetAttribute(param0->unk_00.unk_1A_9, 1) + param0->unk_00.unk_1A_3; - - if (param2 == 0) { - Window_Scroll(param0->unk_00.unk_0C, 1, (u8)(param1 * v0), (u8)((param0->unk_00.unk_18_0 << 4) | param0->unk_00.unk_18_0)); - sub_02001688(param0, param0->unk_28, 0, param1); - - v1 = (u16)(param0->unk_00.unk_12 * v0 + param0->unk_00.unk_17_0); - - Window_FillRectWithColor(param0->unk_00.unk_0C, (u8)param0->unk_00.unk_18_0, 0, v1, (u16)(Window_GetWidth(param0->unk_00.unk_0C) * 8), (u16)(Window_GetHeight(param0->unk_00.unk_0C) * 8 - v1)); - } else { - Window_Scroll(param0->unk_00.unk_0C, 0, (u8)(param1 * v0), (u8)((param0->unk_00.unk_18_0 << 4) | param0->unk_00.unk_18_0)); - sub_02001688(param0, (u16)(param0->unk_28 + (param0->unk_00.unk_12 - param1)), (u16)(param0->unk_00.unk_12 - param1), (u16)param1); - Window_FillRectWithColor(param0->unk_00.unk_0C, (u8)param0->unk_00.unk_18_0, 0, 0, (u16)(Window_GetWidth(param0->unk_00.unk_0C) * 8), (u16)param0->unk_00.unk_17_0); - } -} - -static u8 sub_02001A18(BmpList *param0, u8 param1, u8 param2, u8 param3) -{ - u16 v0; - u8 v1, v2; - u8 v3, v4; - - v0 = param0->unk_2A; - v4 = 0; - v2 = 0; - - for (v3 = 0; v3 < param2; v3++) { - do { - v1 = sub_020017E0(param0, param3); - v2 |= v1; - - if (v1 != 2) { - break; - } - - v4++; - } while (param0->unk_00.unk_00[param0->unk_28 + param0->unk_2A].unk_04 == 0xfffffffd); - } - - if (param1) { - switch (v2) { - default: - case 0: - return 1; - break; - case 1: - sub_02001778(param0, v0); - sub_02001720(param0); - sub_02001AD8(param0, 0); - Window_CopyToVRAM(param0->unk_00.unk_0C); - break; - case 2: - case 3: - sub_02001778(param0, v0); - sub_02001900(param0, v4, param3); - sub_02001720(param0); - sub_02001AD8(param0, 0); - Window_CopyToVRAM(param0->unk_00.unk_0C); - break; - } - } - - return 0; -} - -static void sub_02001AD8(BmpList *param0, u8 param1) -{ - if (param0->unk_00.unk_04 != NULL) { - param0->unk_00.unk_04(param0, param0->unk_00.unk_00[param0->unk_28 + param0->unk_2A].unk_04, param1); - } -} diff --git a/src/unk_02001AF4.c b/src/unk_02001AF4.c deleted file mode 100644 index a7ac374f5a..0000000000 --- a/src/unk_02001AF4.c +++ /dev/null @@ -1,508 +0,0 @@ -#include "unk_02001AF4.h" - -#include -#include - -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" -#include "struct_defs/struct_02081CF4.h" - -#include "bg_window.h" -#include "colored_arrow.h" -#include "core_sys.h" -#include "font.h" -#include "heap.h" -#include "message.h" -#include "text.h" -#include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" - -typedef struct UIControlData_t { - UnkStruct_02081CF4 unk_00; - ColoredArrow *unk_0C; - u32 unk_10; - u8 unk_14; - u8 unk_15; - u8 unk_16; - u8 unk_17; - u8 unk_18; - u8 unk_19; - u8 unk_1A; - u8 unk_1B; - u8 unk_1C; -} UIControlData; - -static void sub_0200DB10(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6, u16 param7); -static void sub_0200DD7C(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6, u16 param7); -static BOOL sub_02001DCC(UIControlData *param0, u8 param1, u16 param2); -static u8 sub_02001E24(UIControlData *param0, u8 param1); -static u8 sub_02001F1C(UIControlData *param0); -static void sub_02001F5C(UIControlData *param0); -static void sub_02001FE8(UIControlData *param0); -static void sub_02002018(UIControlData *param0, u8 *param1, u8 *param2, u8 param3); - -UIControlData *sub_02001AF4(const UnkStruct_02081CF4 *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 param5) -{ - UIControlData *v0 = (UIControlData *)Heap_AllocFromHeap(param4, sizeof(UIControlData)); - - v0->unk_00 = *param0; - v0->unk_0C = ColoredArrow_New(param4); - v0->unk_10 = param5; - v0->unk_15 = param3; - v0->unk_16 = sub_02001F1C(v0); - v0->unk_1C = param4; - v0->unk_17 = param1; - v0->unk_18 = param2; - v0->unk_19 = Font_GetAttribute(param0->unk_08, 0) + Font_GetAttribute(param0->unk_08, 2); - v0->unk_1A = Font_GetAttribute(param0->unk_08, 1) + Font_GetAttribute(param0->unk_08, 3); - - sub_02001F5C(v0); - sub_02001FE8(v0); - - return v0; -} - -UIControlData *sub_02001B7C(const UnkStruct_02081CF4 *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 param5) -{ - UIControlData *v0 = sub_02001AF4(param0, param1, param2, param3, param4, param5); - - Window_CopyToVRAM(v0->unk_00.unk_04); - return v0; -} - -UIControlData *sub_02001B9C(const UnkStruct_02081CF4 *param0, u8 param1, u8 param2) -{ - return sub_02001B7C(param0, Font_GetAttribute(param0->unk_08, 0), 0, param1, param2, PAD_BUTTON_B); -} - -void sub_02001BC4(UIControlData *param0, u8 *param1) -{ - if (param1 != NULL) { - *param1 = param0->unk_15; - } - - ColoredArrow_Free(param0->unk_0C); - Heap_FreeToHeapExplicit(param0->unk_1C, param0); -} - -u32 sub_02001BE0(UIControlData *param0) -{ - param0->unk_1B = 0; - - if (gCoreSys.pressedKeys & PAD_BUTTON_A) { - Sound_PlayEffect(1500); - return param0->unk_00.unk_00[param0->unk_15].unk_04; - } - - if (gCoreSys.pressedKeys & param0->unk_10) { - Sound_PlayEffect(1500); - return 0xfffffffe; - } - - if (gCoreSys.pressedKeys & PAD_KEY_UP) { - if (sub_02001DCC(param0, 0, 1500) == 1) { - param0->unk_1B = 1; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeys & PAD_KEY_DOWN) { - if (sub_02001DCC(param0, 1, 1500) == 1) { - param0->unk_1B = 2; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeys & PAD_KEY_LEFT) { - if (sub_02001DCC(param0, 2, 1500) == 1) { - param0->unk_1B = 3; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeys & PAD_KEY_RIGHT) { - if (sub_02001DCC(param0, 3, 1500) == 1) { - param0->unk_1B = 4; - } - - return 0xffffffff; - } - - return 0xffffffff; -} - -u32 sub_02001C94(UIControlData *param0, u16 param1) -{ - param0->unk_1B = 0; - - if (gCoreSys.pressedKeys & PAD_BUTTON_A) { - Sound_PlayEffect(1500); - return param0->unk_00.unk_00[param0->unk_15].unk_04; - } - - if (gCoreSys.pressedKeys & param0->unk_10) { - Sound_PlayEffect(1500); - return 0xfffffffe; - } - - if (gCoreSys.pressedKeys & PAD_KEY_UP) { - if (sub_02001DCC(param0, 0, param1) == 1) { - param0->unk_1B = 1; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeys & PAD_KEY_DOWN) { - if (sub_02001DCC(param0, 1, param1) == 1) { - param0->unk_1B = 2; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeys & PAD_KEY_LEFT) { - if (sub_02001DCC(param0, 2, param1) == 1) { - param0->unk_1B = 3; - } - - return 0xffffffff; - } - - if (gCoreSys.pressedKeys & PAD_KEY_RIGHT) { - if (sub_02001DCC(param0, 3, param1) == 1) { - param0->unk_1B = 4; - } - - return 0xffffffff; - } - - return 0xffffffff; -} - -u32 sub_02001D44(UIControlData *param0, u8 param1) -{ - switch (param1) { - case 0: - Sound_PlayEffect(1500); - return param0->unk_00.unk_00[param0->unk_15].unk_04; - case 1: - Sound_PlayEffect(1500); - return 0xfffffffe; - case 2: - sub_02001DCC(param0, 0, 1500); - return 0xffffffff; - case 3: - sub_02001DCC(param0, 1, 1500); - return 0xffffffff; - case 4: - sub_02001DCC(param0, 2, 1500); - return 0xffffffff; - case 5: - sub_02001DCC(param0, 3, 1500); - return 0xffffffff; - } - - return 0xffffffff; -} - -u8 sub_02001DC4(UIControlData *param0) -{ - return param0->unk_15; -} - -u8 sub_02001DC8(UIControlData *param0) -{ - return param0->unk_1B; -} - -static BOOL sub_02001DCC(UIControlData *param0, u8 param1, u16 param2) -{ - u8 v0 = param0->unk_15; - - if (sub_02001E24(param0, param1) == 0) { - return 0; - } - - { - u8 v1, v2; - u8 v3; - - v3 = Font_GetAttribute(param0->unk_00.unk_08, 6); - - sub_02002018(param0, &v1, &v2, v0); - Window_FillRectWithColor(param0->unk_00.unk_04, v3, v1, v2, 8, param0->unk_1A); - } - - sub_02001FE8(param0); - Sound_PlayEffect(param2); - - return 1; -} - -static u8 sub_02001E24(UIControlData *param0, u8 param1) -{ - s8 v0; - - if (param1 == 0) { - if (param0->unk_00.unk_0A <= 1) { - return 0; - } - - if ((param0->unk_15 % param0->unk_00.unk_0A) == 0) { - if (param0->unk_00.unk_0B_6 == 0) { - return 0; - } - - v0 = param0->unk_15 + (param0->unk_00.unk_0A - 1); - } else { - v0 = param0->unk_15 - 1; - } - } else if (param1 == 1) { - if (param0->unk_00.unk_0A <= 1) { - return 0; - } - - if ((param0->unk_15 % param0->unk_00.unk_0A) == (param0->unk_00.unk_0A - 1)) { - if (param0->unk_00.unk_0B_6 == 0) { - return 0; - } - - v0 = param0->unk_15 - (param0->unk_00.unk_0A - 1); - } else { - v0 = param0->unk_15 + 1; - } - } else if (param1 == 2) { - if (param0->unk_00.unk_09 <= 1) { - return 0; - } - - if (param0->unk_15 < param0->unk_00.unk_0A) { - if (param0->unk_00.unk_0B_6 == 0) { - return 0; - } - - v0 = param0->unk_15 + (param0->unk_00.unk_0A * (param0->unk_00.unk_09 - 1)); - } else { - v0 = param0->unk_15 - param0->unk_00.unk_0A; - } - } else { - if (param0->unk_00.unk_09 <= 1) { - return 0; - } - - if (param0->unk_15 >= (param0->unk_00.unk_0A * (param0->unk_00.unk_09 - 1))) { - if (param0->unk_00.unk_0B_6 == 0) { - return 0; - } - - v0 = param0->unk_15 % param0->unk_00.unk_0A; - } else { - v0 = param0->unk_15 + param0->unk_00.unk_0A; - } - } - - if (param0->unk_00.unk_00[v0].unk_04 == 0xfffffffd) { - return 0; - } - - param0->unk_15 = v0; - return 1; -} - -static u8 sub_02001F1C(UIControlData *param0) -{ - u8 v0 = 0; - u8 v1, v2; - - for (v1 = 0; v1 < param0->unk_00.unk_09 * param0->unk_00.unk_0A; v1++) { - v2 = Font_CalcStrbufWidth(param0->unk_00.unk_08, param0->unk_00.unk_00[v1].unk_00, 0); - - if (v0 < v2) { - v0 = v2; - } - } - - return v0; -} - -static void sub_02001F5C(UIControlData *param0) -{ - const void *v0; - u8 v1, v2, v3; - u8 v4, v5; - - Window_FillTilemap(param0->unk_00.unk_04, Font_GetAttribute(param0->unk_00.unk_08, 6)); - - v1 = param0->unk_17; - v3 = param0->unk_16 + param0->unk_19 * 2; - - for (v4 = 0; v4 < param0->unk_00.unk_09; v4++) { - for (v5 = 0; v5 < param0->unk_00.unk_0A; v5++) { - v0 = param0->unk_00.unk_00[v4 * param0->unk_00.unk_0A + v5].unk_00; - v2 = (param0->unk_1A + param0->unk_00.unk_0B_0) * v5 + param0->unk_18; - - Text_AddPrinterWithParams(param0->unk_00.unk_04, param0->unk_00.unk_08, v0, v1, v2, TEXT_SPEED_NO_TRANSFER, NULL); - } - - v1 += v3; - } -} - -static void sub_02001FE8(UIControlData *param0) -{ - u8 v0, v1; - - if (param0->unk_00.unk_0B_4 == 1) { - return; - } - - sub_02002018(param0, &v0, &v1, param0->unk_15); - ColoredArrow_Print(param0->unk_0C, param0->unk_00.unk_04, v0, v1); -} - -static void sub_02002018(UIControlData *param0, u8 *param1, u8 *param2, u8 param3) -{ - *param1 = (param3 / param0->unk_00.unk_0A) * (param0->unk_16 + param0->unk_19 * 2); - *param2 = (param3 % param0->unk_00.unk_0A) * (param0->unk_1A + param0->unk_00.unk_0B_0) + param0->unk_18; -} - -UIControlData *sub_02002054(BgConfig *param0, const WindowTemplate *param1, u16 param2, u8 param3, u8 param4, u32 param5) -{ - UnkStruct_02081CF4 v0; - MessageLoader *v1; - ResourceMetadata *v2; - - v1 = MessageLoader_Init(1, 26, 361, param5); - v2 = sub_02013A04(2, param5); - - sub_02013A4C(v2, v1, 41, 0); - sub_02013A4C(v2, v1, 42, 0xfffffffe); - MessageLoader_Free(v1); - - v0.unk_00 = v2; - v0.unk_04 = Window_New(param5, 1); - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; - - Window_AddFromTemplate(param0, v0.unk_04, param1); - Window_Show(v0.unk_04, 1, param2, param3); - - return sub_02001B7C(&v0, 8, 0, param4, param5, PAD_BUTTON_B); -} - -UIControlData *sub_02002100(BgConfig *param0, const WindowTemplate *param1, u16 param2, u8 param3, u32 param4) -{ - return sub_02002054(param0, param1, param2, param3, 0, param4); -} - -u32 sub_02002114(UIControlData *param0, u32 param1) -{ - u32 v0 = sub_02001BE0(param0); - - if (v0 != 0xffffffff) { - sub_02002154(param0, param1); - } - - return v0; -} - -u32 sub_02002134(UIControlData *param0, u8 param1, u32 param2) -{ - u32 v0 = sub_02001D44(param0, param1); - - if (v0 != 0xffffffff) { - sub_02002154(param0, param2); - } - - return v0; -} - -void sub_02002154(UIControlData *param0, u32 param1) -{ - Window_Clear(param0->unk_00.unk_04, 0); - Window_Remove(param0->unk_00.unk_04); - Heap_FreeToHeapExplicit(param1, param0->unk_00.unk_04); - sub_02013A3C((ResourceMetadata *)param0->unk_00.unk_00); - sub_02001BC4(param0, NULL); -} - -void sub_02002180(Window *param0, u32 param1, u32 param2) -{ - static const u8 v0[] = { - 0xff, - 0xff, - 0xff, - 0x0, - 0xff, - 0xff, - 0xff, - 0x0, - 0x21, - 0xff, - 0xff, - 0x0, - 0x11, - 0xf2, - 0xff, - 0x0, - 0x11, - 0x21, - 0xff, - 0x0, - 0x11, - 0x11, - 0xf2, - 0x0, - 0x11, - 0x11, - 0x21, - 0x0, - 0x11, - 0x11, - 0x22, - 0x0, - 0x11, - 0x21, - 0xf2, - 0x0, - 0x11, - 0x22, - 0xff, - 0x0, - 0x21, - 0xf2, - 0xff, - 0x0, - 0x22, - 0xff, - 0xff, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0 - }; - - Window_BlitBitmapRect(param0, (void *)v0, 0, 0, 8, 16, param1, param2, 8, 16); -} diff --git a/src/unk_02003B60.c b/src/unk_02003B60.c index 5dd1921e45..e01104d267 100644 --- a/src/unk_02003B60.c +++ b/src/unk_02003B60.c @@ -93,7 +93,7 @@ void sub_02003B60(ChatotCry *param0, Options *param1) Unk_02101DF4 = NNS_SND_CAPTURE_OUTPUT_EFFECT_NORMAL; v0->unk_BCD98 = param0; - sub_02004FB8(param1->soundMode); + Sound_SetPlaybackMode(param1->soundMode); return; } diff --git a/src/unk_020041CC.c b/src/unk_020041CC.c index 97efaf2772..fc28c58e31 100644 --- a/src/unk_020041CC.c +++ b/src/unk_020041CC.c @@ -73,7 +73,7 @@ void sub_02004F68(int param0, u16 param1, int param2); void sub_02004F7C(u16 param0, u16 param1, int param2); void sub_02004F94(int param0, u16 param1, int param2); void sub_02004FA8(int param0, int param1); -void sub_02004FB8(BOOL param0); +void Sound_SetPlaybackMode(BOOL param0); void sub_02004FCC(int param0); void sub_02004FDC(int param0); int sub_02004FEC(void); @@ -1188,7 +1188,7 @@ void sub_02004FA8(int param0, int param1) return; } -void sub_02004FB8(BOOL param0) +void Sound_SetPlaybackMode(BOOL param0) { NNS_SndSetMonoFlag(param0); Unk_021BEB80 = param0; diff --git a/src/unk_02005474.c b/src/unk_02005474.c index 48b85bf365..790b97c011 100644 --- a/src/unk_02005474.c +++ b/src/unk_02005474.c @@ -36,7 +36,7 @@ void sub_020056D4(void); BOOL Sound_PlayEffect(u16 param0); BOOL sub_02005770(u16 param0, int param1); BOOL sub_02005728(u16 param0, int param1); -void sub_020057A4(u16 param0, int param1); +void Sound_StopEffect(u16 param0, int param1); void sub_020057AC(int param0, int param1); void sub_020057BC(int param0); int sub_020057E0(void); @@ -325,7 +325,7 @@ BOOL sub_02005770(u16 param0, int param1) return v1; } -void sub_020057A4(u16 param0, int param1) +void Sound_StopEffect(u16 param0, int param1) { NNS_SndPlayerStopSeqBySeqNo(param0, param1); return; @@ -409,7 +409,7 @@ BOOL sub_02005844(u16 param0, u8 param1) } } - if (v0 == 441) { + if (v0 == SPECIES_CHATOT) { if (ProcessAudioInput(*v3, 0, 127, 0) == 1) { Sound_FlagDefaultChatotCry(0); return 1; diff --git a/src/unk_0200C6E4.c b/src/unk_0200C6E4.c index 3608675c9f..a74fd04d27 100644 --- a/src/unk_0200C6E4.c +++ b/src/unk_0200C6E4.c @@ -152,7 +152,7 @@ void sub_0200C7EC(SpriteGfxHandler *param0) CellActorCollection_Update(param0->unk_00); } -void sub_0200C800(void) +void OAMManager_ApplyAndResetBuffers(void) { sub_0200A858(); } diff --git a/src/unk_0200DA60.c b/src/unk_0200DA60.c deleted file mode 100644 index dddc564919..0000000000 --- a/src/unk_0200DA60.c +++ /dev/null @@ -1,721 +0,0 @@ -#include "unk_0200DA60.h" - -#include -#include - -#include "struct_defs/archived_sprite.h" -#include "struct_defs/sprite_template.h" -#include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/struct_02013610.h" - -#include "overlay005/ov5_021D2F14.h" -#include "overlay005/struct_ov5_021D30A8.h" -#include "overlay104/struct_ov104_02241308.h" - -#include "bg_window.h" -#include "cell_actor.h" -#include "graphics.h" -#include "gx_layers.h" -#include "heap.h" -#include "narc.h" -#include "pokemon.h" -#include "render_text.h" -#include "sprite_resource.h" -#include "sys_task.h" -#include "sys_task_manager.h" -#include "unk_0200679C.h" -#include "unk_0200762C.h" -#include "unk_0200A328.h" -#include "unk_0200C6E4.h" -#include "unk_020131EC.h" - -typedef struct { - Window *unk_00; - u8 unk_04[1024]; - u8 unk_404[128]; - u16 unk_484; - u8 unk_486; - u8 unk_487_0 : 7; - u8 : 1; - u8 unk_488_0 : 2; - u8 : 6; -} UnkStruct_0200E924; - -typedef struct { - UnkStruct_ov5_021D30A8 unk_00; - CellActorData *unk_1C8; - BgConfig *unk_1CC; - u8 unk_1D0; - u8 unk_1D1; - u8 unk_1D2; - u8 unk_1D3; -} UnkStruct_0200ED50; - -static void sub_0200E130(Window *param0, u16 param1); -static void sub_0200E31C(BgConfig *param0, u8 param1, u16 param2, u8 param3, u16 param4, u32 param5); -static void sub_0200E924(UnkStruct_0200E924 *param0, u32 param1); -static void sub_0200EB20(SysTask *param0, void *param1); -static UnkStruct_0200ED50 *sub_0200ED14(BgConfig *param0, u8 param1, u8 param2, u8 param3, u32 param4); -static void sub_0200ED50(UnkStruct_0200ED50 *param0, u32 param1); -static void sub_0200ED7C(UnkStruct_0200ED50 *param0); -static void sub_0200EDD4(UnkStruct_0200ED50 *param0, u8 param1, u8 param2); -static void sub_0200EE98(UnkStruct_ov5_021D30A8 *param0, ArchivedSprite *param1); -static void sub_0200EE24(UnkStruct_ov5_021D30A8 *param0, u16 param1, u8 param2); -static void sub_0200EE64(UnkStruct_ov5_021D30A8 *param0, Pokemon *param1); -static void sub_0200EC9C(SysTask *param0, void *param1); -static void sub_0200EF7C(UnkStruct_0200ED50 *param0, u8 param1, u16 param2); -static void sub_0200F12C(UnkStruct_0200ED50 *param0); - -static const SpriteTemplate Unk_020E5040 = { - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - NNS_G2D_VRAM_TYPE_2DMAIN, - { 0x15CD5, 0x15CD5, 0x15CD5, 0x15CD5, 0x0, 0x0 }, - 0x0, - 0x0 -}; - -void Window_SetFrame(BgConfig *param0, u8 param1, u16 param2, u8 param3, u32 param4) -{ - if (param3 == 0) { - Graphics_LoadTilesToBgLayer(38, 0, param0, param1, param2, 0, 0, param4); - } else { - Graphics_LoadTilesToBgLayer(38, 1, param0, param1, param2, 0, 0, param4); - } -} - -u32 Window_FramePalette(void) -{ - return 24; -} - -void sub_0200DAA4(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u32 param5) -{ - u32 v0; - - if (param4 == 0) { - v0 = 0; - } else { - v0 = 1; - } - - Graphics_LoadTilesToBgLayer(38, v0, param0, param1, param2, 0, 0, param5); - - if (param4 == 2) { - v0 = 45; - } else { - v0 = 24; - } - - if (param1 < 4) { - Graphics_LoadPalette(38, v0, 0, param3 * 0x20, 0x20, param5); - } else { - Graphics_LoadPalette(38, v0, 4, param3 * 0x20, 0x20, param5); - } -} - -static void sub_0200DB10(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6, u16 param7) -{ - Bg_FillTilemapRect(param0, param1, param7, param2 - 1, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 1, param2, param3 - 1, param4, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 2, param2 + param4, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 3, param2 - 1, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 5, param2 + param4, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 6, param2 - 1, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 7, param2, param3 + param5, param4, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 8, param2 + param4, param3 + param5, 1, 1, param6); -} - -void Window_Show(Window *param0, u8 param1, u16 param2, u8 param3) -{ - u8 v0 = Window_GetBgLayer(param0); - - sub_0200DB10(param0->bgConfig, v0, Window_GetXPos(param0), Window_GetYPos(param0), Window_GetWidth(param0), Window_GetHeight(param0), param3, param2); - - if (param1 == 0) { - Window_CopyToVRAM(param0); - } -} - -void Window_Clear(Window *param0, u8 param1) -{ - u8 v0 = Window_GetBgLayer(param0); - - Bg_FillTilemapRect(param0->bgConfig, v0, 0, Window_GetXPos(param0) - 1, Window_GetYPos(param0) - 1, Window_GetWidth(param0) + 2, Window_GetHeight(param0) + 2, 0); - - if (param1 == 0) { - Window_ClearAndCopyToVRAM(param0); - } -} - -u32 sub_0200DD04(u32 param0) -{ - return 2 + param0; -} - -u32 sub_0200DD08(u32 param0) -{ - return 25 + param0; -} - -void sub_0200DD0C(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u32 param5) -{ - Graphics_LoadTilesToBgLayer(38, sub_0200DD04(param4), param0, param1, param2, 0, 0, param5); - - if (param1 < 4) { - Graphics_LoadPalette(38, sub_0200DD08(param4), 0, param3 * 0x20, 0x20, param5); - } else { - Graphics_LoadPalette(38, sub_0200DD08(param4), 4, param3 * 0x20, 0x20, param5); - } -} - -static void sub_0200DD7C(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6, u16 param7) -{ - Bg_FillTilemapRect(param0, param1, param7, param2 - 2, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 1, param2 - 1, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 2, param2, param3 - 1, param4, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 3, param2 + param4, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 4, param2 + param4 + 1, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 5, param2 + param4 + 2, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 6, param2 - 2, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 7, param2 - 1, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 9, param2 + param4, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 10, param2 + param4 + 1, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 11, param2 + param4 + 2, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 12, param2 - 2, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 13, param2 - 1, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 14, param2, param3 + param5, param4, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 15, param2 + param4, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 16, param2 + param4 + 1, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 17, param2 + param4 + 2, param3 + param5, 1, 1, param6); -} - -void sub_0200E010(Window *param0, u32 param1, u32 param2) -{ - sub_0200DD7C(param0->bgConfig, Window_GetBgLayer(param0), Window_GetXPos(param0), Window_GetYPos(param0), Window_GetWidth(param0), Window_GetHeight(param0), param2, param1); -} - -void sub_0200E060(Window *param0, u8 param1, u16 param2, u8 param3) -{ - sub_0200E010(param0, param2, param3); - - if (param1 == 0) { - Window_CopyToVRAM(param0); - } - - sub_0200E130(param0, param2); -} - -void sub_0200E084(Window *param0, u8 param1) -{ - u8 v0 = Window_GetBgLayer(param0); - - Bg_FillTilemapRect(param0->bgConfig, v0, 0, Window_GetXPos(param0) - 2, Window_GetYPos(param0) - 1, Window_GetWidth(param0) + 5, Window_GetHeight(param0) + 2, 0); - - if (param1 == 0) { - Window_ClearAndCopyToVRAM(param0); - } -} - -static void sub_0200E0EC(void *param0, u16 param1, u16 param2, u16 param3, u16 param4, void *param5, u16 param6, u16 param7, u16 param8, u16 param9, u16 param10, u16 param11) -{ - Bitmap v0; - Bitmap v1; - - v0.pixels = (u8 *)param0; - v0.width = param3; - v0.height = param4; - - v1.pixels = (u8 *)param5; - v1.width = param6; - v1.height = param7; - - Bitmap_BlitRect4bpp(&v0, &v1, param1, param2, param8, param9, param10, param11, 0); -} - -static void sub_0200E130(Window *param0, u16 param1) -{ - u32 v0; - u8 *v1; - u8 *v2; - u8 *v3; - void *v4; - u8 v5; - u8 v6; - - v0 = BgConfig_GetHeapID(param0->bgConfig); - v5 = Window_GetBgLayer(param0); - v1 = Heap_AllocFromHeap(v0, (0x20 * 4 * 3)); - v2 = Bg_GetCharPtr(v5); - - { - NNSG2dCharacterData *v7; - - v4 = Graphics_GetCharData(38, 22, 0, &v7, v0); - v3 = (u8 *)v7->pRawData; - } - - for (v6 = 0; v6 < 3; v6++) { - memcpy(&v1[v6 * 0x20 * 4 + 0x20 * 0], &v2[(param1 + 10) * 0x20], 0x20); - memcpy(&v1[v6 * 0x20 * 4 + 0x20 * 1], &v2[(param1 + 11) * 0x20], 0x20); - memcpy(&v1[v6 * 0x20 * 4 + 0x20 * 2], &v2[(param1 + 10) * 0x20], 0x20); - memcpy(&v1[v6 * 0x20 * 4 + 0x20 * 3], &v2[(param1 + 11) * 0x20], 0x20); - } - - sub_0200E0EC(v3, 4, 0, 12, 16 * 3, v1, 12, 16 * 3, 1, 0, 12, 16 * 3); - Bg_LoadTiles(param0->bgConfig, v5, v1, (0x20 * 4 * 3), param1 + 18); - TextPrinter_SetScrollArrowBaseTile(param1); - Heap_FreeToHeap(v4); - Heap_FreeToHeap(v1); -} - -void sub_0200E218(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u32 param5) -{ - void *v0; - NNSG2dCharacterData *v1; - u8 *v2; - u32 v3; - u8 v4, v5; - - v0 = Graphics_GetCharData(38, sub_0200DD04(param4), 0, &v1, param5); - v2 = Heap_AllocFromHeap(param5, 0x20 * 18); - - memcpy(v2, v1->pRawData, 0x20 * 18); - - for (v3 = 0; v3 < 0x20 * 18; v3++) { - v4 = v2[v3] >> 4; - v5 = v2[v3] & 0xf; - - if (v4 == 0) { - v4 = param3; - } - - if (v5 == 0) { - v5 = param3; - } - - v2[v3] = (v4 << 4) | v5; - } - - Bg_LoadTiles(param0, param1, v2, 0x20 * 18, param2); - Heap_FreeToHeap(v0); - Heap_FreeToHeap(v2); -} - -void sub_0200E2A4(BgConfig *param0, u8 param1, u16 param2, u8 param3, u8 param4, u16 param5, u32 param6) -{ - Graphics_LoadTilesToBgLayer( - 36, 0, param0, param1, param2, (18 + 12) * 0x20, 0, param6); - - { - NNSG2dPaletteData *v0; - void *v1; - u16 *v2; - - v1 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_GRAPHIC__FIELD_BOARD, 1, param6); - NNS_G2dGetUnpackedPaletteData(v1, &v0); - v2 = (u16 *)v0->pRawData; - - Bg_LoadPalette(param1, (void *)&v2[param4 * 16], 0x20, param3 * 0x20); - Heap_FreeToHeapExplicit(param6, v1); - } - - if ((param4 == 0) || (param4 == 1)) { - sub_0200E31C(param0, param1, param2 + (18 + 12), param4, param5, param6); - } -} - -static void sub_0200E31C(BgConfig *param0, u8 param1, u16 param2, u8 param3, u16 param4, u32 param5) -{ - if (param3 == 0) { - param4 += 33; - } else { - param4 += 2; - } - - Graphics_LoadTilesToBgLayer(36, param4, param0, param1, param2, 24 * 0x20, 0, param5); -} - -static void sub_0200E354(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6, u16 param7) -{ - Bg_FillTilemapRect(param0, param1, param7, param2 - 9, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 1, param2 - 8, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 2, param2 - 7, param3 - 1, param4 + 7, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 3, param2 + param4, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 4, param2 + param4 + 1, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 5, param2 + param4 + 2, param3 - 1, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 6, param2 - 9, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 7, param2 - 8, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 8, param2 - 1, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 9, param2 + param4, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 10, param2 + param4 + 1, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 11, param2 + param4 + 2, param3, 1, param5, param6); - Bg_FillTilemapRect(param0, param1, param7 + 12, param2 - 9, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 13, param2 - 8, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 14, param2 - 7, param3 + param5, param4 + 7, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 15, param2 + param4, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 16, param2 + param4 + 1, param3 + param5, 1, 1, param6); - Bg_FillTilemapRect(param0, param1, param7 + 17, param2 + param4 + 2, param3 + param5, 1, 1, param6); -} - -static void sub_0200E61C(Window *param0, u16 param1, u8 param2) -{ - u16 v0, v1; - u16 v2, v3; - u8 v4; - - v4 = Window_GetBgLayer(param0); - v2 = Window_GetXPos(param0) - 7; - v3 = Window_GetYPos(param0); - - for (v0 = 0; v0 < 4; v0++) { - for (v1 = 0; v1 < 6; v1++) { - Bg_FillTilemapRect(param0->bgConfig, v4, param1 + v0 * 6 + v1, v2 + v1, v3 + v0, 1, 1, param2); - } - } -} - -void sub_0200E69C(Window *param0, u8 param1, u16 param2, u8 param3, u8 param4) -{ - u8 v0 = Window_GetBgLayer(param0); - - if ((param4 == 0) || (param4 == 1)) { - sub_0200E354(param0->bgConfig, v0, Window_GetXPos(param0), Window_GetYPos(param0), Window_GetWidth(param0), Window_GetHeight(param0), param3, param2); - sub_0200E61C(param0, param2 + (18 + 12), param3); - } else { - sub_0200DD7C(param0->bgConfig, v0, Window_GetXPos(param0), Window_GetYPos(param0), Window_GetWidth(param0), Window_GetHeight(param0), param3, param2); - } - - if (param1 == 0) { - Window_CopyToVRAM(param0); - } - - sub_0200E130(param0, param2); -} - -void sub_0200E744(Window *param0, u8 param1, u8 param2) -{ - u8 v0 = Window_GetBgLayer(param0); - - if ((param1 == 0) || (param1 == 1)) { - Bg_FillTilemapRect(param0->bgConfig, v0, 0, Window_GetXPos(param0) - 9, Window_GetYPos(param0) - 1, Window_GetWidth(param0) + 11, Window_GetHeight(param0) + 2, 0); - } else { - Bg_FillTilemapRect(param0->bgConfig, v0, 0, Window_GetXPos(param0) - 2, Window_GetYPos(param0) - 1, Window_GetWidth(param0) + 5, Window_GetHeight(param0) + 2, 0); - } - - if (param2 == 0) { - Window_ClearAndCopyToVRAM(param0); - } -} - -void *sub_0200E7FC(Window *param0, u32 param1) -{ - UnkStruct_0200E924 *v0; - u32 v1; - u8 *v2; - u8 *v3; - u8 *v4; - void *v5; - u8 v6; - u8 v7; - - v1 = BgConfig_GetHeapID(param0->bgConfig); - v6 = Window_GetBgLayer(param0); - v2 = Bg_GetCharPtr(v6); - v0 = Heap_AllocFromHeap(v1, sizeof(UnkStruct_0200E924)); - - memcpy(v0->unk_404, &v2[(param1 + 18) * 0x20], 0x20 * 4); - - v4 = (u8 *)Heap_AllocFromHeap(v1, 0x20 * 4); - - memcpy(&v4[0x20 * 0], &v2[(param1 + 10) * 0x20], 0x20); - memcpy(&v4[0x20 * 1], &v2[(param1 + 11) * 0x20], 0x20); - memcpy(&v4[0x20 * 2], &v2[(param1 + 10) * 0x20], 0x20); - memcpy(&v4[0x20 * 3], &v2[(param1 + 11) * 0x20], 0x20); - - for (v7 = 0; v7 < 8; v7++) { - memcpy(&v0->unk_04[0x20 * 4 * v7], v4, 0x20 * 4); - } - - Heap_FreeToHeap(v4); - - { - NNSG2dCharacterData *v8; - - v5 = Graphics_GetCharData(38, 23, 0, &v8, v1); - v3 = (u8 *)v8->pRawData; - } - - sub_0200E0EC(v3, 0, 0, 16, 16 * 8, v0->unk_04, 16, 16 * 8, 0, 0, 16, 16 * 8); - Heap_FreeToHeap(v5); - - v0->unk_00 = param0; - v0->unk_484 = (u16)param1; - v0->unk_486 = 0; - v0->unk_487_0 = 0; - v0->unk_488_0 = 0; - - SysTask_ExecuteOnVBlank(sub_0200EB20, v0, 0); - sub_0200E924(v0, 1); - - return v0; -} - -static void sub_0200E924(UnkStruct_0200E924 *param0, u32 param1) -{ - u8 v0, v1, v2, v3; - - v0 = Window_GetBgLayer(param0->unk_00); - v1 = Window_GetXPos(param0->unk_00); - v2 = Window_GetYPos(param0->unk_00); - v3 = Window_GetWidth(param0->unk_00); - - if (param1 == 2) { - Bg_LoadTiles(param0->unk_00->bgConfig, v0, param0->unk_404, 0x20 * 4, param0->unk_484 + 18); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 10, v1 + v3 + 1, v2 + 2, 1, 1, 16); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 11, v1 + v3 + 2, v2 + 2, 1, 1, 16); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 10, v1 + v3 + 1, v2 + 3, 1, 1, 16); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 11, v1 + v3 + 2, v2 + 3, 1, 1, 16); - Bg_CopyTilemapBufferToVRAM(param0->unk_00->bgConfig, v0); - - return; - } - - Bg_LoadTiles( - param0->unk_00->bgConfig, v0, ¶m0->unk_04[0x20 * 4 * param0->unk_487_0], 0x20 * 4, param0->unk_484 + 18); - - if (param1 == 0) { - return; - } - - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 18, v1 + v3 + 1, v2 + 2, 1, 1, 16); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 19, v1 + v3 + 2, v2 + 2, 1, 1, 16); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 20, v1 + v3 + 1, v2 + 3, 1, 1, 16); - Bg_FillTilemapRect(param0->unk_00->bgConfig, v0, param0->unk_484 + 21, v1 + v3 + 2, v2 + 3, 1, 1, 16); - Bg_CopyTilemapBufferToVRAM(param0->unk_00->bgConfig, v0); -} - -static void sub_0200EB20(SysTask *param0, void *param1) -{ - UnkStruct_0200E924 *v0 = param1; - - if (v0->unk_488_0 != 0) { - if (v0->unk_488_0 == 1) { - sub_0200E924(v0, 2); - } - - SysTask_Done(param0); - return; - } - - v0->unk_486++; - - if (v0->unk_486 == 16) { - v0->unk_486 = 0; - v0->unk_487_0 = (v0->unk_487_0 + 1) & 7; - sub_0200E924(v0, 0); - } -} - -static void sub_0200EB8C(SysTask *param0, void *param1) -{ - Heap_FreeToHeap(param1); - SysTask_Done(param0); -} - -void DeleteWaitDial(void *param0) -{ - UnkStruct_0200E924 *v0 = param0; - - SysTask_ExecuteAfterVBlank(sub_0200EB8C, v0, 0); - v0->unk_488_0 = 1; -} - -void sub_0200EBC8(void *param0) -{ - UnkStruct_0200E924 *v0 = param0; - - SysTask_ExecuteAfterVBlank(sub_0200EB8C, v0, 0); - v0->unk_488_0 = 2; -} - -u8 *sub_0200EBF0(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u16 param5, u16 param6, u8 param7, int param8) -{ - UnkStruct_0200ED50 *v0 = sub_0200ED14(param0, param1, param2, param3, param8); - - sub_0200ED50(v0, param8); - sub_0200ED7C(v0); - sub_0200EDD4(v0, param2, param3); - sub_0200EE24(&v0->unk_00, param6, param7); - sub_0200EF7C(v0, param4, param5); - Bg_CopyTilemapBufferToVRAM(param0, param1); - - return &v0->unk_1D3; -} - -u8 *sub_0200EC48(BgConfig *param0, u8 param1, u8 param2, u8 param3, u8 param4, u16 param5, Pokemon *param6, int param7) -{ - UnkStruct_0200ED50 *v0 = sub_0200ED14(param0, param1, param2, param3, param7); - - sub_0200ED50(v0, param7); - sub_0200ED7C(v0); - sub_0200EDD4(v0, param2, param3); - sub_0200EE64(&v0->unk_00, param6); - sub_0200EF7C(v0, param4, param5); - Bg_CopyTilemapBufferToVRAM(param0, param1); - - return &v0->unk_1D3; -} - -static void sub_0200EC9C(SysTask *param0, void *param1) -{ - UnkStruct_0200ED50 *v0 = param1; - - switch (v0->unk_1D3) { - case 1: - sub_0200F12C(v0); - sub_0200D0F4(v0->unk_1C8); - ov5_021D375C(&v0->unk_00); - SysTask_FinishAndFreeParam(param0); - return; - case 2: - v0->unk_1D3 = 3; - CellActor_SetAnim(v0->unk_1C8->unk_00, 1); - break; - case 3: - if (CellActor_GetAnimFrame(v0->unk_1C8->unk_00) == 6) { - v0->unk_1D3 = 0; - } - } - - CellActor_UpdateAnim(v0->unk_1C8->unk_00, FX32_ONE); - CellActorCollection_Update(v0->unk_00.unk_00); -} - -static UnkStruct_0200ED50 *sub_0200ED14(BgConfig *param0, u8 param1, u8 param2, u8 param3, u32 param4) -{ - UnkStruct_0200ED50 *v0 = SysTask_GetParam(SysTask_StartAndAllocateParam(sub_0200EC9C, sizeof(UnkStruct_0200ED50), 0, param4)); - - v0->unk_1D3 = 0; - v0->unk_1CC = param0; - v0->unk_1D0 = param1; - v0->unk_1D1 = param2; - v0->unk_1D2 = param3; - - return v0; -} - -static void sub_0200ED50(UnkStruct_0200ED50 *param0, u32 param1) -{ - UnkStruct_ov104_02241308 v0 = { 1, 1, 1, 1, 0, 0 }; - ov5_021D3190(¶m0->unk_00, &v0, 1, param1); -} - -static void sub_0200ED7C(UnkStruct_0200ED50 *param0) -{ - ov5_021D3270(¶m0->unk_00, 38, 49, 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 89301); - ov5_021D3360(¶m0->unk_00, 38, 47, 0, 89301); - ov5_021D3388(¶m0->unk_00, 38, 46, 0, 89301); - ov5_021D33B0(¶m0->unk_00, 38, 48, 0, NNS_G2D_VRAM_TYPE_2DMAIN, 89301); -} - -static void sub_0200EDD4(UnkStruct_0200ED50 *param0, u8 param1, u8 param2) -{ - SpriteTemplate v0 = Unk_020E5040; - - v0.x = (param1 + 5) * 8; - v0.y = (param2 + 5) * 8; - - param0->unk_1C8 = ov5_021D3584(¶m0->unk_00, &v0); - - CellActorCollection_Update(param0->unk_00.unk_00); - GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); -} - -static void sub_0200EE24(UnkStruct_ov5_021D30A8 *param0, u16 param1, u8 param2) -{ - void *v0; - ArchivedSprite v1; - - v0 = sub_0200762C(param0->unk_1C6); - - BuildArchivedPokemonSprite(&v1, param1, param2, 2, 0, NULL, NULL); - sub_0200EE98(param0, &v1); - sub_02007B6C(v0); -} - -static void sub_0200EE64(UnkStruct_ov5_021D30A8 *param0, Pokemon *param1) -{ - void *v0; - ArchivedSprite v1; - - v0 = sub_0200762C(param0->unk_1C6); - - Pokemon_BuildArchivedSprite(&v1, param1, 2); - sub_0200EE98(param0, &v1); - sub_02007B6C(v0); -} - -static void sub_0200EE98(UnkStruct_ov5_021D30A8 *param0, ArchivedSprite *param1) -{ - u8 *v0; - u32 v1; - SpriteResource *v2; - NNSG2dImageProxy *v3; - SpriteResource *v4; - const NNSG2dImagePaletteProxy *v5; - - v0 = Heap_AllocFromHeap(param0->unk_1C6, ((32 * 10 * 10) * 2)); - - { - UnkStruct_02013610 v6 = { 0, 0, 10, 10 }; - sub_020135F0(param1->archive, param1->character, param0->unk_1C6, &v6, &v0[0]); - } - { - UnkStruct_02013610 v7 = { 10, 0, 10, 10 }; - sub_020135F0(param1->archive, param1->character, param0->unk_1C6, &v7, &v0[(32 * 10 * 10)]); - } - - v2 = SpriteResourceCollection_Find(param0->unk_194[0], 89301); - v3 = sub_0200A534(v2); - v1 = NNS_G2dGetImageLocation(v3, NNS_G2D_VRAM_TYPE_2DMAIN); - - DC_FlushRange(v0, ((32 * 10 * 10) * 2)); - GX_LoadOBJ(v0, v1, ((32 * 10 * 10) * 2)); - - Heap_FreeToHeap(v0); - - v0 = sub_02013660(param1->archive, param1->palette, param0->unk_1C6); - v4 = SpriteResourceCollection_Find(param0->unk_194[1], 89301); - v5 = sub_0200A72C(v4, v3); - v1 = NNS_G2dGetImagePaletteLocation(v5, NNS_G2D_VRAM_TYPE_2DMAIN); - - DC_FlushRange(v0, 32); - GX_LoadOBJPltt(v0, v1, 32); - - Heap_FreeToHeap(v0); -} - -static void sub_0200EF7C(UnkStruct_0200ED50 *param0, u8 param1, u16 param2) -{ - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2, param0->unk_1D1 - 1, param0->unk_1D2 - 1, 1, 1, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 1, param0->unk_1D1, param0->unk_1D2 - 1, 10, 1, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 2, param0->unk_1D1 + 10, param0->unk_1D2 - 1, 1, 1, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 4, param0->unk_1D1, param0->unk_1D2, 10, 10, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 3, param0->unk_1D1 - 1, param0->unk_1D2, 1, 10, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 5, param0->unk_1D1 + 10, param0->unk_1D2, 1, 10, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 6, param0->unk_1D1 - 1, param0->unk_1D2 + 10, 1, 1, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 7, param0->unk_1D1, param0->unk_1D2 + 10, 10, 1, param1); - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, param2 + 8, param0->unk_1D1 + 10, param0->unk_1D2 + 10, 1, 1, param1); - Bg_ScheduleTilemapTransfer(param0->unk_1CC, param0->unk_1D0); -} - -static void sub_0200F12C(UnkStruct_0200ED50 *param0) -{ - Bg_FillTilemapRect(param0->unk_1CC, param0->unk_1D0, 0, param0->unk_1D1 - 1, param0->unk_1D2 - 1, 12, 12, 0); - Bg_ScheduleTilemapTransfer(param0->unk_1CC, param0->unk_1D0); -} diff --git a/src/unk_0200F174.c b/src/unk_0200F174.c index e407bfb0bd..d44dd68d15 100644 --- a/src/unk_0200F174.c +++ b/src/unk_0200F174.c @@ -115,7 +115,7 @@ const static UnkFuncPtr_0200F6D8 Unk_020E5074[] = { static UnkStruct_0200F46C Unk_021BF474; -void sub_0200F174(int param0, int param1, int param2, u16 param3, int param4, int param5, int param6) +void StartScreenTransition(int param0, int param1, int param2, u16 param3, int param4, int param5, int param6) { UnkStruct_0200F46C *v0; u16 v1; @@ -165,7 +165,7 @@ void sub_0200F27C(void) } } -BOOL ScreenWipe_Done(void) +BOOL IsScreenTransitionDone(void) { if (Unk_021BF474.unk_14C) { return 0; diff --git a/src/unk_020131EC.c b/src/unk_020131EC.c index 9506f51855..8a5b188026 100644 --- a/src/unk_020131EC.c +++ b/src/unk_020131EC.c @@ -3,6 +3,8 @@ #include #include +#include "consts/species.h" + #include "struct_defs/struct_02013610.h" #include "heap.h" @@ -76,14 +78,14 @@ static BOOL sub_020132F8(int param0) int v0; int v1; const int v2[] = { - 327, - 495, + SPECIES_SPINDA, + SPECIES_BAD_EGG, }; for (v0 = 0; v0 < 495; v0++) { v1 = v2[v0]; - if (v1 == 495) { + if (v1 == SPECIES_BAD_EGG) { break; } diff --git a/src/unk_02013A04.c b/src/unk_02013A04.c deleted file mode 100644 index 8e65b83146..0000000000 --- a/src/unk_02013A04.c +++ /dev/null @@ -1,114 +0,0 @@ -#include "unk_02013A04.h" - -#include -#include - -#include "struct_decls/struct_02013A04_decl.h" -#include "struct_defs/struct_02013A04_t.h" - -#include "heap.h" -#include "message.h" -#include "strbuf.h" - -static ResourceMetadata *sub_02013AAC(ResourceMetadata *param0, u32 *param1); - -ResourceMetadata *sub_02013A04(u32 param0, u32 param1) -{ - ResourceMetadata *v0 = Heap_AllocFromHeap(param1, sizeof(ResourceMetadata) * (param0 + 1)); - - if (v0) { - u32 v1; - - for (v1 = 0; v1 < param0; v1++) { - v0[v1].unk_00 = NULL; - v0[v1].unk_04 = 0; - } - - v0[v1].unk_00 = ((const void *)0xffffffff); - v0[v1].unk_04 = param1; - } - - return v0; -} - -void sub_02013A3C(ResourceMetadata *param0) -{ - sub_02013AE8(param0); - Heap_FreeToHeap(param0); -} - -void sub_02013A4C(ResourceMetadata *param0, const MessageLoader *param1, u32 param2, u32 param3) -{ - u32 v0; - - param0 = sub_02013AAC(param0, &v0); - - if (param0) { - param0->unk_00 = MessageLoader_GetNewStrbuf(param1, param2); - param0->unk_04 = param3; - } -} - -void sub_02013A6C(ResourceMetadata *param0, const Strbuf *param1, u32 param2) -{ - u32 v0; - - param0 = sub_02013AAC(param0, &v0); - - if (param0) { - param0->unk_00 = Strbuf_Clone(param1, v0); - param0->unk_04 = param2; - } -} - -void sub_02013A90(ResourceMetadata *param0, const ResourceMetadata *param1) -{ - u32 v0; - - param0 = sub_02013AAC(param0, &v0); - - if (param0) { - param0->unk_00 = param1->unk_00; - param0->unk_04 = param1->unk_04; - } -} - -static ResourceMetadata *sub_02013AAC(ResourceMetadata *param0, u32 *param1) -{ - ResourceMetadata *v0; - - while (param0->unk_00 != NULL) { - if (param0->unk_00 == ((const void *)0xffffffff)) { - GF_ASSERT(0); - return NULL; - } - - param0++; - } - - v0 = param0; - - while (param0->unk_00 != ((const void *)0xffffffff)) { - param0++; - } - - *param1 = param0->unk_04; - - return v0; -} - -void sub_02013AE8(ResourceMetadata *param0) -{ - ResourceMetadata *v0 = param0; - - while (v0->unk_00 != ((const void *)0xffffffff)) { - if (v0->unk_00 == NULL) { - break; - } - - Strbuf_Free((Strbuf *)(v0->unk_00)); - - v0->unk_00 = NULL; - v0++; - } -} diff --git a/src/unk_0201DBEC.c b/src/unk_0201DBEC.c index 05e54833fa..599130d7f3 100644 --- a/src/unk_0201DBEC.c +++ b/src/unk_0201DBEC.c @@ -16,7 +16,7 @@ static BOOL sub_0201DCF8(NNS_GFD_DST_TYPE param0, u32 param1, void *param2, u32 static UnkStruct_021C0700 *Unk_021C0700; -void sub_0201DBEC(u32 param0, int param1) +void VRAMTransferManager_New(u32 param0, int param1) { GF_ASSERT(Unk_021C0700 == NULL); Unk_021C0700 = Heap_AllocFromHeap(param1, sizeof(UnkStruct_021C0700)); @@ -29,7 +29,7 @@ void sub_0201DBEC(u32 param0, int param1) NNS_GfdInitVramTransferManager(Unk_021C0700->unk_08, Unk_021C0700->unk_00); } -void sub_0201DC3C(void) +void VRAMTransferManager_Destroy(void) { GF_ASSERT(Unk_021C0700 != NULL); diff --git a/src/unk_0202631C.c b/src/unk_0202631C.c index 498a063a4c..98de432093 100644 --- a/src/unk_0202631C.c +++ b/src/unk_0202631C.c @@ -65,13 +65,13 @@ static inline void CheckPokedexIntegrity(const PokedexData *dexData) GF_ASSERT(dexData->magic == 3203386110); } -static BOOL Pokedex_InvalidSpecies(u16 species) +static BOOL IsSpeciesOutOfBounds(u16 species) { - if ((species == 0) || (species > NATIONAL_DEX_COUNT)) { + if (species == SPECIES_NONE || species > NATIONAL_DEX_COUNT) { GF_ASSERT(0); - return 1; + return TRUE; } else { - return 0; + return FALSE; } } @@ -140,14 +140,14 @@ static void sub_020263D8(PokedexData *dexData, u8 param1, u8 param2, u16 param3) sub_02026360(dexData, param1, param2, param3); } -static inline BOOL Read_SeenSpecies(const PokedexData *dexData, u16 species) +static inline BOOL CheckSeenMask(const PokedexData *pokedex, u16 species) { - return ReadBit((const u8 *)dexData->seenPokemon, species); + return ReadBit((const u8 *)pokedex->seenPokemon, species); } -static inline BOOL Read_CaughtSpecies(const PokedexData *dexData, u16 species) +static inline BOOL CheckCaughtMask(const PokedexData *pokedex, u16 species) { - return ReadBit((const u8 *)dexData->caughtPokemon, species); + return ReadBit((const u8 *)pokedex->caughtPokemon, species); } static inline u8 inline_02026BAC(const PokedexData *dexData, u16 param1, u8 param2) @@ -157,8 +157,8 @@ static inline u8 inline_02026BAC(const PokedexData *dexData, u16 param1, u8 para static inline void inline_0202736C_1(PokedexData *dexData, u16 param1, u32 param2) { - if (param1 == 327) { - dexData->unk_104 = param2; + if (param1 == SPECIES_SPINDA) { + param0->unk_104 = param2; } } @@ -211,7 +211,7 @@ static int sub_02026464(const PokedexData *dexData, u32 param1) GF_ASSERT((param1 == 422) || (param1 == 423) || (param1 == 492) || (param1 == 487)); - if (Pokedex_HasEncountered(dexData, param1) == 0) { + if (Pokedex_HasSeenSpecies(param0, param1) == FALSE) { return 0; } @@ -249,7 +249,7 @@ static BOOL sub_02026514(const PokedexData *dexData, u32 param1, u8 param2) GF_ASSERT((param1 == 422) || (param1 == 423) || (param1 == 492) || (param1 == 487)); - if (Pokedex_HasEncountered(dexData, param1) == 0) { + if (Pokedex_HasSeenSpecies(param0, param1) == FALSE) { return 0; } @@ -324,14 +324,14 @@ static int sub_020266F8(const PokedexData *dexData, u32 param1) int v1; const u8 *v2; - GF_ASSERT((param1 == 412) || (param1 == 413)); + GF_ASSERT((param1 == SPECIES_BURMY) || (param1 == SPECIES_WORMADAM)); - if (Pokedex_HasEncountered(dexData, param1) == 0) { + if (Pokedex_HasSeenSpecies(param0, param1) == FALSE) { return 0; } - if (param1 == 412) { - v2 = &dexData->unk_10A; + if (param1 == SPECIES_BURMY) { + v2 = ¶m0->unk_10A; } else { v2 = &dexData->unk_10B; } @@ -355,7 +355,7 @@ static BOOL sub_02026754(const PokedexData *dexData, u32 param1, u8 param2) GF_ASSERT((param1 == 412) || (param1 == 413)); - if (Pokedex_HasEncountered(dexData, param1) == 0) { + if (Pokedex_HasSeenSpecies(param0, param1) == FALSE) { return 0; } @@ -381,14 +381,14 @@ static void sub_020267B8(PokedexData *dexData, u32 param1, int param2) int v0; u8 *v1; - GF_ASSERT((param1 == 412) || (param1 == 413)); + GF_ASSERT((param1 == SPECIES_BURMY) || (param1 == SPECIES_WORMADAM)); if (sub_02026754(dexData, param1, param2)) { return; } - if (param1 == 412) { - v1 = &dexData->unk_10A; + if (param1 == SPECIES_BURMY) { + v1 = ¶m0->unk_10A; } else { v1 = &dexData->unk_10B; } @@ -473,10 +473,10 @@ static void sub_020268FC(PokedexData *dexData, u16 param1, Pokemon *param2) u8 v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); u32 v1; - if (param1 == 386) { - if (sub_020268D8(dexData, v0) == 0) { - v1 = sub_020268B8(dexData); - sub_02026850(dexData, v0, v1); + if (param1 == SPECIES_DEOXYS) { + if (sub_020268D8(param0, v0) == 0) { + v1 = sub_020268B8(param0); + sub_02026850(param0, v0, v1); } } } @@ -510,7 +510,7 @@ static int sub_02026958(const PokedexData *dexData, u32 param1) GF_ASSERT(param1 == 479); - if (Pokedex_HasEncountered(dexData, param1) == 0) { + if (Pokedex_HasSeenSpecies(param0, param1) == FALSE) { return 0; } @@ -537,7 +537,7 @@ static BOOL sub_020269A4(const PokedexData *dexData, u32 param1, u8 param2) GF_ASSERT(param1 == 479); - if (Pokedex_HasEncountered(dexData, param1) == 0) { + if (Pokedex_HasSeenSpecies(param0, param1) == FALSE) { return 0; } @@ -576,38 +576,38 @@ static void sub_02026A60(PokedexData *dexData, u16 param1, Pokemon *param2) int v0; switch (param1) { - case 201: + case SPECIES_UNOWN: v0 = Pokemon_GetForm(param2); sub_0202643C(dexData, v0); break; - case 412: + case SPECIES_BURMY: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_020267B8(dexData, param1, v0); break; - case 413: + case SPECIES_WORMADAM: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_020267B8(dexData, param1, v0); break; - case 422: + case SPECIES_SHELLOS: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_020265E8(dexData, param1, v0); break; - case 423: + case SPECIES_GASTRODON: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_020265E8(dexData, param1, v0); break; - case 386: - sub_020268FC(dexData, param1, param2); + case SPECIES_DEOXYS: + sub_020268FC(param0, param1, param2); break; - case 492: + case SPECIES_SHAYMIN: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_020265E8(dexData, param1, v0); break; - case 487: + case SPECIES_GIRATINA: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_020265E8(dexData, param1, v0); break; - case 479: + case SPECIES_ROTOM: v0 = Pokemon_GetValue(param2, MON_DATA_FORM, NULL); sub_02026A00(dexData, param1, v0); break; @@ -778,7 +778,7 @@ u16 sub_02026DD0(const PokedexData *dexData) v1 = 0; for (v0 = 1; v0 <= NATIONAL_DEX_COUNT; v0++) { - if (Pokedex_HasCaught(dexData, v0) == 1) { + if (Pokedex_HasCaughtSpecies(param0, v0) == 1) { v1++; } } @@ -786,30 +786,29 @@ u16 sub_02026DD0(const PokedexData *dexData) return v1; } -u16 sub_02026E0C(const PokedexData *dexData) +u16 Pokedex_CountSeenNational(const PokedexData *pokedex) { - int v0; - int v1; + int i; + CheckPokedexIntegrity(pokedex); - CheckPokedexIntegrity(dexData); - v1 = 0; + int seenCount = 0; - for (v0 = 1; v0 <= NATIONAL_DEX_COUNT; v0++) { - if (Pokedex_HasEncountered(dexData, v0) == 1) { - v1++; + for (i = 1; i <= NATIONAL_DEX_COUNT; i++) { + if (Pokedex_HasSeenSpecies(pokedex, i) == TRUE) { + seenCount++; } } - return v1; + return seenCount; } -u16 sub_02026E48(const PokedexData *dexData) +u16 Pokedex_CountSeen(const PokedexData *pokedex) { - if (Pokedex_IsNationalUnlocked(dexData)) { - return sub_02026E0C(dexData); + if (Pokedex_IsNationalDexObtained(pokedex)) { + return Pokedex_CountSeenNational(pokedex); } - return sub_02026EAC(dexData); + return Pokedex_CountSeenSinnoh(pokedex); } u16 sub_02026E64(const PokedexData *dexData) @@ -821,7 +820,7 @@ u16 sub_02026E64(const PokedexData *dexData) v1 = 0; for (v0 = 1; v0 <= NATIONAL_DEX_COUNT; v0++) { - if (Pokedex_HasCaught(dexData, v0) == 1) { + if (Pokedex_HasCaughtSpecies(param0, v0) == 1) { if (Pokemon_SinnohDexNumber(v0) != 0) { v1++; } @@ -831,23 +830,20 @@ u16 sub_02026E64(const PokedexData *dexData) return v1; } -u16 sub_02026EAC(const PokedexData *dexData) +u16 Pokedex_CountSeenSinnoh(const PokedexData *pokedex) { - int v0; - int v1; + int i; - CheckPokedexIntegrity(dexData); - v1 = 0; + CheckPokedexIntegrity(pokedex); + int seenCount = 0; - for (v0 = 1; v0 <= NATIONAL_DEX_COUNT; v0++) { - if (Pokedex_HasEncountered(dexData, v0) == 1) { - if (Pokemon_SinnohDexNumber(v0) != 0) { - v1++; - } + for (i = 1; i <= NATIONAL_DEX_COUNT; i++) { + if (Pokedex_HasSeenSpecies(pokedex, i) == TRUE && Pokemon_SinnohDexNumber(i) != 0) { + seenCount++; } } - return v1; + return seenCount; } BOOL sub_02026EF4(const PokedexData *dexData) @@ -884,7 +880,7 @@ u16 sub_02026F20(const PokedexData *dexData) v1 = 0; for (v0 = 1; v0 <= NATIONAL_DEX_COUNT; v0++) { - if (Pokedex_HasCaught(dexData, v0) == 1) { + if (Pokedex_HasCaughtSpecies(param0, v0) == 1) { if (sub_02026D44(v0) == 1) { v1++; } @@ -903,7 +899,7 @@ u16 sub_02026F58(const PokedexData *dexData) v1 = 0; for (v0 = 1; v0 <= NATIONAL_DEX_COUNT; v0++) { - if (Pokedex_HasEncountered(dexData, v0) == 1) { + if (Pokedex_HasSeenSpecies(param0, v0) == TRUE) { v2 = Pokemon_SinnohDexNumber(v0); if (v2 != 0) { @@ -917,30 +913,30 @@ u16 sub_02026F58(const PokedexData *dexData) return v1; } -BOOL Pokedex_HasCaught(const PokedexData *dexData, u16 species) +BOOL Pokedex_HasCaughtSpecies(const PokedexData *pokedex, u16 species) { - CheckPokedexIntegrity(dexData); + CheckPokedexIntegrity(pokedex); - if (Pokedex_InvalidSpecies(species)) { - return 0; + if (IsSpeciesOutOfBounds(species)) { + return FALSE; } - if (Read_CaughtSpecies(dexData, species) && Read_SeenSpecies(dexData, species)) { - return 1; + if (CheckCaughtMask(pokedex, species) && CheckSeenMask(pokedex, species)) { + return TRUE; } else { - return 0; + return FALSE; } } -BOOL Pokedex_HasEncountered(const PokedexData *dexData, u16 species) +BOOL Pokedex_HasSeenSpecies(const PokedexData *pokedex, u16 species) { - CheckPokedexIntegrity(dexData); + CheckPokedexIntegrity(pokedex); - if (Pokedex_InvalidSpecies(species)) { - return 0; + if (IsSpeciesOutOfBounds(species)) { + return FALSE; } - return Read_SeenSpecies(dexData, species); + return CheckSeenMask(pokedex, species); } u32 sub_0202702C(const PokedexData *dexData, u8 param1) @@ -965,11 +961,11 @@ u32 sub_02027058(const PokedexData *dexData, u16 species, int param2) { CheckPokedexIntegrity(dexData); - if (Pokedex_InvalidSpecies(species)) { + if (IsSpeciesOutOfBounds(param1)) { return -1; } - if (!Read_SeenSpecies(dexData, species)) { + if (!CheckSeenMask(param0, param1)) { return -1; } @@ -1082,13 +1078,13 @@ void sub_020272A4(PokedexData *dexData, Pokemon *pokemon) CheckPokedexIntegrity(dexData); - if (Pokedex_InvalidSpecies(species)) { + if (IsSpeciesOutOfBounds(v0)) { return; } - if (!Read_SeenSpecies(dexData, species)) { - inline_0202736C_1(dexData, species, v1); - sub_020263D8(dexData, v2, 0, species); + if (!CheckSeenMask(param0, v0)) { + inline_0202736C_1(param0, v0, v1); + sub_020263D8(param0, v2, 0, v0); } else { v3 = inline_02026BAC(dexData, species, 0); @@ -1111,13 +1107,13 @@ void sub_0202736C(PokedexData *dexData, Pokemon *param1) CheckPokedexIntegrity(dexData); - if (Pokedex_InvalidSpecies(species)) { + if (IsSpeciesOutOfBounds(v0)) { return; } - if (!Read_SeenSpecies(dexData, species)) { - inline_0202736C_1(dexData, species, v2); - sub_020263D8(dexData, v3, 0, species); + if (!CheckSeenMask(param0, v0)) { + inline_0202736C_1(param0, v0, v2); + sub_020263D8(param0, v3, 0, v0); } else { v4 = inline_02026BAC(dexData, species, 0); @@ -1139,10 +1135,10 @@ void sub_02027454(PokedexData *dexData) dexData->nationalDexObtained = 1; } -BOOL Pokedex_IsNationalUnlocked(const PokedexData *dexData) +BOOL Pokedex_IsNationalDexObtained(const PokedexData *pokedex) { - CheckPokedexIntegrity(dexData); - return dexData->nationalDexObtained; + CheckPokedexIntegrity(pokedex); + return pokedex->nationalDexObtained; } BOOL Pokedex_CanDetectForms(const PokedexData *dexData) @@ -1181,10 +1177,10 @@ BOOL sub_02027514(const PokedexData *dexData) return dexData->unk_319; } -BOOL sub_02027520(const PokedexData *dexData) +BOOL Pokedex_IsObtained(const PokedexData *pokedex) { - CheckPokedexIntegrity(dexData); - return dexData->pokedexObtained; + CheckPokedexIntegrity(pokedex); + return pokedex->pokedexObtained; } void sub_02027540(PokedexData *dexData) @@ -1193,12 +1189,10 @@ void sub_02027540(PokedexData *dexData) dexData->pokedexObtained = 1; } -PokedexData *SaveData_Pokedex(SaveData *param0) +PokedexData *SaveData_Pokedex(SaveData *saveData) { - PokedexData *v0; - - v0 = SaveData_SaveTable(param0, 7); - return v0; + PokedexData *pokedex = SaveData_SaveTable(saveData, SAVE_TABLE_ENTRY_POKEDEX); + return pokedex; } u32 sub_0202756C(const PokedexData *dexData, int species, int param2) diff --git a/src/unk_020298BC.c b/src/unk_020298BC.c index 8c34f909ee..ed6aabb2ca 100644 --- a/src/unk_020298BC.c +++ b/src/unk_020298BC.c @@ -150,9 +150,9 @@ static void sub_020299C0(UnkStruct_0202A138 *param0, const Strbuf *param1, int p static void sub_020299D8(const UnkStruct_0202A138 *param0, Pokemon *param1) { - Pokemon_InitWith(param1, param0->unk_08, 0, 0, 1, param0->unk_00, 1, param0->unk_04); - Pokemon_SetValue(param1, 117, param0->unk_0A); - Pokemon_SetValue(param1, 112, ¶m0->unk_33); + Pokemon_InitWith(param1, param0->unk_08, 0, 0, TRUE, param0->unk_00, OTID_SET, param0->unk_04); + Pokemon_SetValue(param1, MON_DATA_NICKNAME, param0->unk_0A); + Pokemon_SetValue(param1, MON_DATA_FORM, ¶m0->unk_33); } static void sub_02029A18(UnkStruct_0202A150 *param0, u8 param1, u8 param2, u8 param3, u8 param4) diff --git a/src/unk_0202F1D4.c b/src/unk_0202F1D4.c index d964022ce2..dbc425f106 100644 --- a/src/unk_0202F1D4.c +++ b/src/unk_0202F1D4.c @@ -610,7 +610,7 @@ static void sub_0202FD30(UnkStruct_0202FD30 *param0, Party *param1) for (v0 = 0; v0 < param0->unk_02; v0++) { sub_02078E0C(¶m0->unk_04[v0], v1); - Pokemon_SetValue(v1, 162, &v2); + Pokemon_SetValue(v1, MON_DATA_MAIL_ID, &v2); Party_AddPokemon(param1, v1); } diff --git a/src/unk_020393C8.c b/src/unk_020393C8.c index 25351bab82..aa7d9f4c6e 100644 --- a/src/unk_020393C8.c +++ b/src/unk_020393C8.c @@ -344,7 +344,7 @@ void sub_020397C8(BOOL param0, u32 param1) } } -void sub_020397E4(void) +void DrawWifiConnectionIcon(void) { if (CommSys_IsInitialized()) { if ((CommSys_ConnectedCount() > 1) || sub_020389B8()) { diff --git a/src/unk_02039814.c b/src/unk_02039814.c index e5441729ce..4bc43c07fc 100644 --- a/src/unk_02039814.c +++ b/src/unk_02039814.c @@ -11,11 +11,11 @@ #include "gx_layers.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" @@ -138,7 +138,7 @@ void sub_02039834(int param0, int param1, int param2) SetAllGraphicsModes(&Unk_020E5ED0); Bg_InitFromTemplate(v0, 0, &Unk_020E5EE0, 0); Bg_ClearTilemap(v0, 0); - sub_0200DAA4(v0, 0, (512 - 9), 2, 0, param0); + LoadStandardWindowGraphics(v0, 0, (512 - 9), 2, 0, param0); Font_LoadTextPalette(0, 1 * (2 * 16), param0); Bg_ClearTilesRange(0, 32, 0, param0); Bg_MaskPalette(0, 0x6c21); @@ -152,7 +152,7 @@ void sub_02039834(int param0, int param1, int param2) Window_AddFromTemplate(v0, &v1, &Unk_020E5EC8); Window_FillRectWithColor(&v1, 15, 0, 0, 26 * 8, 18 * 8); - Window_Show(&v1, 0, (512 - 9), 2); + Window_DrawStandardFrame(&v1, 0, (512 - 9), 2); StringTemplate_SetNumber(v5, 0, param2, 5, 2, 1); MessageLoader_GetStrbuf(v2, v6, v4); diff --git a/src/unk_02039A64.c b/src/unk_02039A64.c index e5c55e5e7c..c2203744e3 100644 --- a/src/unk_02039A64.c +++ b/src/unk_02039A64.c @@ -9,11 +9,11 @@ #include "gx_layers.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "unk_02000C88.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" @@ -101,7 +101,7 @@ void sub_02039A64(int param0, int param1) SetAllGraphicsModes(&Unk_020E5F50); Bg_InitFromTemplate(v0, 0, &Unk_020E5F60, 0); Bg_ClearTilemap(v0, 0); - sub_0200DAA4(v0, 0, (512 - 9), 2, 0, param0); + LoadStandardWindowGraphics(v0, 0, (512 - 9), 2, 0, param0); Font_LoadTextPalette(0, 1 * (2 * 16), param0); Bg_ClearTilesRange(0, 32, 0, param0); Bg_MaskPalette(0, 0x6c21); @@ -113,7 +113,7 @@ void sub_02039A64(int param0, int param1) Text_ResetAllPrinters(); Window_AddFromTemplate(v0, &v1, &Unk_020E5F48); Window_FillRectWithColor(&v1, 15, 0, 0, 26 * 8, 18 * 8); - Window_Show(&v1, 0, (512 - 9), 2); + Window_DrawStandardFrame(&v1, 0, (512 - 9), 2); MessageLoader_GetStrbuf(v2, v4, v3); Text_AddPrinterWithParams(&v1, FONT_SYSTEM, v3, 0, 0, TEXT_SPEED_INSTANT, NULL); Strbuf_Free(v3); diff --git a/src/unk_0203D1B8.c b/src/unk_0203D1B8.c index 4085b84fe8..0625bdcbc1 100644 --- a/src/unk_0203D1B8.c +++ b/src/unk_0203D1B8.c @@ -18,7 +18,6 @@ #include "struct_defs/pokemon_summary.h" #include "struct_defs/struct_0202DF8C.h" #include "struct_defs/struct_0203D8AC.h" -#include "struct_defs/struct_0203D8EC.h" #include "struct_defs/struct_0203D9B8.h" #include "struct_defs/struct_0203DA00.h" #include "struct_defs/struct_0203DDFC.h" @@ -43,6 +42,7 @@ #include "struct_defs/struct_02098C44.h" #include "struct_defs/struct_020997B8.h" +#include "applications/options_menu.h" #include "battle/ov16_0223B140.h" #include "choose_starter/choose_starter_app.h" #include "dw_warp/dw_warp.h" @@ -63,7 +63,6 @@ #include "overlay064/ov64_0222DCE0.h" #include "overlay071/ov71_0223B140.h" #include "overlay072/ov72_0223D7A0.h" -#include "overlay074/ov74_021D0D80.h" #include "overlay080/ov80_021D0D80.h" #include "overlay081/ov81_021D0D80.h" #include "overlay084/const_ov84_02241130.h" @@ -162,7 +161,7 @@ FS_EXTERN_OVERLAY(overlay61); FS_EXTERN_OVERLAY(overlay64); FS_EXTERN_OVERLAY(overlay71); FS_EXTERN_OVERLAY(overlay72); -FS_EXTERN_OVERLAY(overlay74); +FS_EXTERN_OVERLAY(options_menu); FS_EXTERN_OVERLAY(choose_starter); FS_EXTERN_OVERLAY(overlay80); FS_EXTERN_OVERLAY(overlay81); @@ -764,31 +763,27 @@ void *sub_0203D8AC(FieldSystem *fieldSystem) return v0; } -static void sub_0203D8DC(FieldSystem *fieldSystem, Options *param1) +static void OpenOptionsMenu(FieldSystem *fieldSystem, Options *options) { - FS_EXTERN_OVERLAY(overlay74); + FS_EXTERN_OVERLAY(options_menu); - static const OverlayManagerTemplate v0 = { - ov74_021D0D80, - ov74_021D0F60, - ov74_021D0E58, - FS_OVERLAY_ID(overlay74) + static const OverlayManagerTemplate template = { + OptionsMenu_Init, + OptionsMenu_Main, + OptionsMenu_Exit, + FS_OVERLAY_ID(options_menu) }; - sub_0203CD84(fieldSystem, &v0, param1); + sub_0203CD84(fieldSystem, &template, options); } -void *sub_0203D8EC(FieldSystem *fieldSystem) +void *FieldSystem_OpenOptionsMenu(FieldSystem *fieldSystem) { - UnkStruct_0203D8EC *v0; - Options *v1; + OptionsMenu *optionsMenu = Heap_AllocFromHeapAtEnd(11, sizeof(OptionsMenu)); + Options *options = SaveData_Options(FieldSystem_SaveData(fieldSystem)); + OpenOptionsMenu(fieldSystem, options); - v0 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_0203D8EC)); - v1 = SaveData_Options(FieldSystem_SaveData(fieldSystem)); - - sub_0203D8DC(fieldSystem, v1); - - return v0; + return optionsMenu; } extern const OverlayManagerTemplate Unk_020F64B0; @@ -1246,7 +1241,7 @@ static void sub_0203DF68(TaskManager *param0) int v4; v3 = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(fieldSystem->saveData), v1->unk_04); - Pokemon_SetValue(v3, 118, (u8 *)&v1->unk_0C->unk_1C); + Pokemon_SetValue(v3, MON_DATA_NICKNAME_AND_FLAG, (u8 *)&v1->unk_0C->unk_1C); } break; case 5: { UnkStruct_0202B4A0 *v5 = sub_0202B4A0(fieldSystem->saveData); @@ -1537,7 +1532,7 @@ void sub_0203E2FC(FieldSystem *fieldSystem) v0.unk_08 = SaveData_GetTrainerInfo(fieldSystem->saveData); v0.unk_0C = sub_02055428(fieldSystem, fieldSystem->location->mapId); - sub_020985AC(fieldSystem->unk_10, &v0); + sub_020985AC(fieldSystem->taskManager, &v0); } BOOL sub_0203E348(FieldSystem *fieldSystem, UnkStruct_0203E348 *param1) @@ -1663,7 +1658,7 @@ static BOOL sub_0203E4F8(TaskManager *param0) void sub_0203E518(TaskManager *param0) { FieldSystem *fieldSystem = TaskManager_FieldSystem(param0); - UnkStruct_ov7_0224BEFC *v1 = ov7_0224BE9C(4, fieldSystem->saveData, fieldSystem->unk_08); + UnkStruct_ov7_0224BEFC *v1 = ov7_0224BE9C(4, fieldSystem->saveData, fieldSystem->bgConfig); FieldTask_Start(param0, sub_0203E4F8, v1); } diff --git a/src/unk_02046AD4.c b/src/unk_02046AD4.c index 35044c7143..53ec505582 100644 --- a/src/unk_02046AD4.c +++ b/src/unk_02046AD4.c @@ -108,6 +108,6 @@ BOOL ScrCmd_14A(ScriptContext *param0) BOOL ScrCmd_257(ScriptContext *param0) { - sub_0203E518(param0->fieldSystem->unk_10); + sub_0203E518(param0->fieldSystem->taskManager); return 1; } diff --git a/src/unk_02046C7C.c b/src/unk_02046C7C.c index 036801ab17..51753e3e97 100644 --- a/src/unk_02046C7C.c +++ b/src/unk_02046C7C.c @@ -107,7 +107,7 @@ BOOL ScrCmd_0FA(ScriptContext *param0) v8.unk_01 = v4; v8.unk_02 = v6; v8.unk_03 = sub_0206A954(SaveData_GetVarsFlags(param0->fieldSystem->saveData)); - v8.unk_04 = Pokedex_IsNationalUnlocked(SaveData_Pokedex(param0->fieldSystem->saveData)); + v8.unk_04 = Pokedex_IsNationalDexObtained(SaveData_Pokedex(param0->fieldSystem->saveData)); v8.unk_05 = v7; v8.unk_08 = v1; v8.unk_0C = v0; diff --git a/src/unk_020482D4.c b/src/unk_020482D4.c index 3a8561733a..2b3b7e5cb0 100644 --- a/src/unk_020482D4.c +++ b/src/unk_020482D4.c @@ -126,7 +126,7 @@ BOOL ScrCmd_PlayFanfare(ScriptContext *ctx) BOOL ScrCmd_04A(ScriptContext *param0) { - sub_020057A4(ScriptContext_GetVar(param0), 0); + Sound_StopEffect(ScriptContext_GetVar(param0), 0); return 0; } diff --git a/src/unk_020494DC.c b/src/unk_020494DC.c index 1a84b23034..07ccf96d4a 100644 --- a/src/unk_020494DC.c +++ b/src/unk_020494DC.c @@ -299,7 +299,7 @@ BOOL ScrCmd_1E2(ScriptContext *param0) v0 = ScriptContext_ReadHalfWord(param0); if (sub_0205E6D8(param0->fieldSystem->saveData) == 1) { - sub_0206BD88(param0->fieldSystem->unk_10, v1, v0); + sub_0206BD88(param0->fieldSystem->taskManager, v1, v0); } else { v2->unk_8DA = v0; v2->unk_8D5 = v1; diff --git a/src/unk_02049D08.c b/src/unk_02049D08.c index 284492bdfc..cc2901cb73 100644 --- a/src/unk_02049D08.c +++ b/src/unk_02049D08.c @@ -1009,7 +1009,7 @@ static void sub_0204ACFC(UnkStruct_ov104_0223A348_sub2 *param0, Pokemon *param1) param0->unk_00_val1_11 = Pokemon_GetValue(param1, MON_DATA_FORM, NULL); param0->unk_02 = Pokemon_GetValue(param1, MON_DATA_HELD_ITEM, NULL); - for (v0 = 0; v0 < 4; v0++) { + for (v0 = 0; v0 < LEARNED_MOVES_MAX; v0++) { param0->unk_04[v0] = Pokemon_GetValue(param1, MON_DATA_MOVE1 + v0, NULL); param0->unk_1E_val2 |= ((Pokemon_GetValue(param1, MON_DATA_MOVE1_PP_UPS + v0, NULL)) << (v0 * 2)); } diff --git a/src/unk_0204AEE8.c b/src/unk_0204AEE8.c index c88482eece..a92dd87db8 100644 --- a/src/unk_0204AEE8.c +++ b/src/unk_0204AEE8.c @@ -121,7 +121,7 @@ StringTemplate *sub_0204AEE8(SaveData *param0, u16 param1, u16 param2, u8 param3 for (v0 = 0; v0 < 18; v0++) { v1 = sub_02078824(v0); - if (Pokedex_HasEncountered(v4, v1)) { + if (Pokedex_HasSeenSpecies(v4, v1)) { MessageLoader_GetStrbuf(v6, v1, v2); StringTemplate_SetStrbuf(v5, (*param4) + 1, v2, param2, param3, GAME_LANGUAGE); (*param4)++; diff --git a/src/unk_0204B830.c b/src/unk_0204B830.c index a62fcd00dd..3834c943b0 100644 --- a/src/unk_0204B830.c +++ b/src/unk_0204B830.c @@ -201,30 +201,30 @@ static void sub_0204BAAC(FieldSystem *fieldSystem, void *param1) sub_020780C4(v4, v9); v10 = Pokemon_GetGender(v4); - Pokemon_SetValue(v4, 111, (u8 *)&v10); + Pokemon_SetValue(v4, MON_DATA_GENDER, (u8 *)&v10); v10 = Pokemon_GetValue(v4, MON_DATA_HP_IV, 0) + Pokemon_GetValue(v4, MON_DATA_ATK_IV, 0) + Pokemon_GetValue(v4, MON_DATA_DEF_IV, 0) + Pokemon_GetValue(v4, MON_DATA_SPEED_IV, 0) + Pokemon_GetValue(v4, MON_DATA_SPATK_IV, 0) + Pokemon_GetValue(v4, MON_DATA_SPDEF_IV, 0); if (v10 == 0) { v8 = LCRNG_Next(); v9 = (v8 & (0x1F << 0)) >> 0; - Pokemon_SetValue(v4, 70, (u8 *)&v9); + Pokemon_SetValue(v4, MON_DATA_HP_IV, (u8 *)&v9); v9 = (v8 & (0x1F << 5)) >> 5; - Pokemon_SetValue(v4, 71, (u8 *)&v9); + Pokemon_SetValue(v4, MON_DATA_ATK_IV, (u8 *)&v9); v9 = (v8 & (0x1F << 10)) >> 10; - Pokemon_SetValue(v4, 72, (u8 *)&v9); + Pokemon_SetValue(v4, MON_DATA_DEF_IV, (u8 *)&v9); v8 = LCRNG_Next(); v9 = (v8 & (0x1F << 0)) >> 0; - Pokemon_SetValue(v4, 73, (u8 *)&v9); + Pokemon_SetValue(v4, MON_DATA_SPEED_IV, (u8 *)&v9); v9 = (v8 & (0x1F << 5)) >> 5; - Pokemon_SetValue(v4, 74, (u8 *)&v9); + Pokemon_SetValue(v4, MON_DATA_SPATK_IV, (u8 *)&v9); v9 = (v8 & (0x1F << 10)) >> 10; - Pokemon_SetValue(v4, 75, (u8 *)&v9); + Pokemon_SetValue(v4, MON_DATA_SPDEF_IV, (u8 *)&v9); } v13 = sub_0202D79C(fieldSystem->saveData); @@ -277,9 +277,9 @@ static void sub_0204BAAC(FieldSystem *fieldSystem, void *param1) v6 = Pokemon_New(32); Pokemon_Copy(v4, v6); - Pokemon_SetValue(v6, 145, v15); - Pokemon_SetValue(v6, 7, &v16); - Pokemon_SetValue(v6, 157, &v17); + Pokemon_SetValue(v6, MON_DATA_OTNAME_STRBUF, v15); + Pokemon_SetValue(v6, MON_DATA_OT_ID, &v16); + Pokemon_SetValue(v6, MON_DATA_OT_GENDER, &v17); v4 = v6; Strbuf_Free(v15); diff --git a/src/unk_0204CFFC.c b/src/unk_0204CFFC.c index d3c9a8d202..4df2a36406 100644 --- a/src/unk_0204CFFC.c +++ b/src/unk_0204CFFC.c @@ -325,7 +325,7 @@ BOOL ScrCmd_1BA(ScriptContext *param0) v4 = 255; } - Pokemon_SetValue(v1, 9, &v4); + Pokemon_SetValue(v1, MON_DATA_FRIENDSHIP, &v4); return 0; } @@ -346,7 +346,7 @@ BOOL ScrCmd_1BB(ScriptContext *param0) v4 -= v2; } - Pokemon_SetValue(v1, 9, &v4); + Pokemon_SetValue(v1, MON_DATA_FRIENDSHIP, &v4); return 0; } @@ -608,7 +608,7 @@ BOOL ScrCmd_1F0(ScriptContext *param0) v1 = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(fieldSystem->saveData), v2); v3 = 0; - Pokemon_SetValue(v1, 6, &v3); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v3); return 0; } diff --git a/src/unk_0204E3CC.c b/src/unk_0204E3CC.c index cc80c74add..b29b38a390 100644 --- a/src/unk_0204E3CC.c +++ b/src/unk_0204E3CC.c @@ -22,11 +22,11 @@ BOOL ScrCmd_157(ScriptContext *param0) { - const PokedexData *v0 = SaveData_Pokedex(param0->fieldSystem->saveData); + const PokedexData *pokedex = SaveData_Pokedex(param0->fieldSystem->saveData); u16 *v1 = ScriptContext_GetVarPointer(param0); - *v1 = sub_02027520(v0); - return 0; + *v1 = Pokedex_IsObtained(pokedex); + return FALSE; } BOOL ScrCmd_158(ScriptContext *param0) diff --git a/src/unk_0204F13C.c b/src/unk_0204F13C.c index ba54e88db4..0c1e6f3c87 100644 --- a/src/unk_0204F13C.c +++ b/src/unk_0204F13C.c @@ -296,7 +296,7 @@ void sub_0204F470(TaskManager *param0, void **param1, u8 param2) v1->unk_04 = param2; v1->unk_08 = param1; - FieldTask_Start(fieldSystem->unk_10, sub_0204F4A4, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0204F4A4, v1); return; } diff --git a/src/unk_0204FAB4.c b/src/unk_0204FAB4.c index 12f6c8179f..a2a8d158ab 100644 --- a/src/unk_0204FAB4.c +++ b/src/unk_0204FAB4.c @@ -221,7 +221,7 @@ static void sub_0204FDB4(TaskManager *param0, void **param1, u8 param2) v1->unk_04 = param2; v1->unk_0C = param1; - FieldTask_Start(fieldSystem->unk_10, sub_0204FDE8, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0204FDE8, v1); return; } diff --git a/src/unk_0205003C.c b/src/unk_0205003C.c index 6e26ffdad4..391813feab 100644 --- a/src/unk_0205003C.c +++ b/src/unk_0205003C.c @@ -211,7 +211,7 @@ void sub_020502E0(TaskManager *param0, void **param1, u8 param2) v1->unk_04 = param2; v1->unk_0C = param1; - FieldTask_Start(fieldSystem->unk_10, sub_02050314, v1); + FieldTask_Start(fieldSystem->taskManager, sub_02050314, v1); return; } diff --git a/src/unk_02050568.c b/src/unk_02050568.c index 9a81c7121c..36689165ef 100644 --- a/src/unk_02050568.c +++ b/src/unk_02050568.c @@ -45,7 +45,7 @@ void sub_02050568(FieldSystem *fieldSystem) UnkStruct_02050568 *v0 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_02050568)); memset(v0, 0, sizeof(UnkStruct_02050568)); - FieldTask_Start(fieldSystem->unk_10, sub_020505A0, v0); + FieldTask_Start(fieldSystem->taskManager, sub_020505A0, v0); } static BOOL sub_020505A0(TaskManager *taskMan) diff --git a/src/unk_020508D4.c b/src/unk_020508D4.c index d354b8ce0f..2adf083eae 100644 --- a/src/unk_020508D4.c +++ b/src/unk_020508D4.c @@ -48,10 +48,10 @@ TaskManager *FieldTask_Set(FieldSystem *fieldSystem, FieldTask param1, void *par { TaskManager *v0; - GF_ASSERT(fieldSystem->unk_10 == NULL); + GF_ASSERT(fieldSystem->taskManager == NULL); v0 = sub_020508D4(fieldSystem, param1, param2); - fieldSystem->unk_10 = v0; + fieldSystem->taskManager = v0; return v0; } @@ -76,30 +76,30 @@ TaskManager *FieldTask_Start(TaskManager *param0, FieldTask param1, void *param2 v0 = sub_020508D4(param0->fieldSystem, param1, param2); v0->unk_00 = param0; - param0->fieldSystem->unk_10 = v0; + param0->fieldSystem->taskManager = v0; return v0; } BOOL sub_02050958(FieldSystem *fieldSystem) { - if (fieldSystem->unk_10 == NULL) { + if (fieldSystem->taskManager == NULL) { return 0; } - while (fieldSystem->unk_10->unk_04(fieldSystem->unk_10) == 1) { + while (fieldSystem->taskManager->unk_04(fieldSystem->taskManager) == 1) { TaskManager *v0; - v0 = fieldSystem->unk_10->unk_00; + v0 = fieldSystem->taskManager->unk_00; - if (fieldSystem->unk_10->unk_14) { - Heap_FreeToHeap(fieldSystem->unk_10->unk_14); + if (fieldSystem->taskManager->unk_14) { + Heap_FreeToHeap(fieldSystem->taskManager->unk_14); } - Heap_FreeToHeap(fieldSystem->unk_10->unk_1C); - Heap_FreeToHeap(fieldSystem->unk_10); + Heap_FreeToHeap(fieldSystem->taskManager->unk_1C); + Heap_FreeToHeap(fieldSystem->taskManager); - fieldSystem->unk_10 = v0; + fieldSystem->taskManager = v0; if (v0 == NULL) { return 1; @@ -111,7 +111,7 @@ BOOL sub_02050958(FieldSystem *fieldSystem) BOOL sub_020509A4(FieldSystem *fieldSystem) { - return fieldSystem->unk_10 != NULL; + return fieldSystem->taskManager != NULL; } BOOL sub_020509B4(FieldSystem *fieldSystem) diff --git a/src/unk_02050A74.c b/src/unk_02050A74.c index 9238d837fd..dfb3888cfa 100644 --- a/src/unk_02050A74.c +++ b/src/unk_02050A74.c @@ -594,7 +594,7 @@ void sub_020512E4(TaskManager *taskMan, u16 param1, u8 param2, int *param3, BOOL v4 = 1; v3 = Party_GetPokemonBySlotIndex(v1->parties[1], 0); - Pokemon_SetValue(v3, 110, &v4); + Pokemon_SetValue(v3, MON_DATA_FATEFUL_ENCOUNTER, &v4); if (param4) { v1->unk_164 |= 0x8; diff --git a/src/unk_02051D8C.c b/src/unk_02051D8C.c index 7cf438c7c9..c251947a3b 100644 --- a/src/unk_02051D8C.c +++ b/src/unk_02051D8C.c @@ -5,6 +5,7 @@ #include "constants/battle.h" #include "constants/pokemon.h" +#include "consts/species.h" #include "struct_decls/pokedexdata_decl.h" #include "struct_decls/struct_0203A790_decl.h" @@ -176,9 +177,9 @@ BattleParams *sub_02051F4C(int param0, const FieldSystem *fieldSystem) Bag_TryAddItem(v4->unk_E0, 4, 20, param0); v5 = Pokemon_New(param0); - Pokemon_InitWith(v5, sub_0206B08C(SaveData_GetVarsFlags(fieldSystem->saveData)), 5, 32, 0, 0, 2, 0); + Pokemon_InitWith(v5, sub_0206B08C(SaveData_GetVarsFlags(fieldSystem->saveData)), 5, 32, FALSE, 0, OTID_NOT_SHINY, 0); Party_AddPokemon(v4->parties[0], v5); - Pokemon_InitWith(v5, 399, 2, 32, 0, 0, 2, 0); + Pokemon_InitWith(v5, SPECIES_BIDOOF, 2, 32, FALSE, 0, OTID_NOT_SHINY, 0); Party_AddPokemon(v4->parties[1], v5); Heap_FreeToHeap(v5); @@ -324,7 +325,7 @@ void sub_02052348(BattleParams *param0, const FieldSystem *fieldSystem, int para if ((Pokemon_GetValue(v8, MON_DATA_LEVEL, NULL) != param2) && (param2 != 0)) { v1 = Pokemon_GetSpeciesBaseExpAt(Pokemon_GetValue(v8, MON_DATA_SPECIES, NULL), param2); - Pokemon_SetValue(v8, 8, &v1); + Pokemon_SetValue(v8, MON_DATA_EXP, &v1); Pokemon_CalcLevelAndStats(v8); } diff --git a/src/unk_020528D0.c b/src/unk_020528D0.c index 9977429919..ba3cec0bc7 100644 --- a/src/unk_020528D0.c +++ b/src/unk_020528D0.c @@ -22,6 +22,7 @@ #include "message.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" #include "save_player.h" #include "script_manager.h" #include "strbuf.h" @@ -29,7 +30,6 @@ #include "text.h" #include "unk_02005474.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0203A7D8.h" #include "unk_020508D4.h" @@ -144,28 +144,28 @@ static BOOL sub_020529C4(TaskManager *param0) switch (v0->unk_00) { case 0: - sub_0200F174(3, 1, 42, 0x0, 8, 1, 32); + StartScreenTransition(3, 1, 42, 0x0, 8, 1, 32); v0->unk_00++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_00++; } break; case 2: if ((gCoreSys.pressedKeys & PAD_BUTTON_A) || (gCoreSys.pressedKeys & PAD_BUTTON_B)) { - sub_0200F174(0, 0, 0, 0x0, 8, 1, 32); + StartScreenTransition(0, 0, 0, 0x0, 8, 1, 32); v0->unk_00++; } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { Window_FillTilemap(&v0->unk_0C, 0); v0->unk_00++; } break; case 4: - sub_0200E084(&v0->unk_0C, 0); + Window_EraseMessageBox(&v0->unk_0C, 0); Window_Remove(&v0->unk_0C); StringTemplate_Free(v0->unk_20); MessageLoader_Free(v0->unk_1C); diff --git a/src/unk_02052C6C.c b/src/unk_02052C6C.c index 342891c02e..1e2076b952 100644 --- a/src/unk_02052C6C.c +++ b/src/unk_02052C6C.c @@ -25,6 +25,7 @@ #include "message.h" #include "message_util.h" #include "party.h" +#include "render_window.h" #include "rtc.h" #include "save_player.h" #include "savedata.h" @@ -32,7 +33,6 @@ #include "string_template.h" #include "trainer_info.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202631C.h" #include "unk_0202DF8C.h" @@ -103,12 +103,12 @@ static BOOL sub_02052CBC(TaskManager *param0) if (!sub_020509B4(fieldSystem)) { Heap_Create(3, 4, 0x20000); sub_02052F28(fieldSystem, v3); - sub_0200F174(3, 1, 1, 0x0, 8, 1, 32); + StartScreenTransition(3, 1, 1, 0x0, 8, 1, 32); (*v4)++; } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (SaveData_OverwriteCheck(fieldSystem->saveData) == 0) { sub_02052FA8(fieldSystem, v3); (*v4)++; @@ -148,11 +148,11 @@ static BOOL sub_02052CBC(TaskManager *param0) } break; case 7: - sub_0200F174(3, 0, 0, 0x0, 8, 1, 32); + StartScreenTransition(3, 0, 0, 0x0, 8, 1, 32); (*v4)++; break; case 8: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_02053098(fieldSystem, v3); sub_0203E274(fieldSystem, &(v3->unk_10)); (*v4)++; @@ -261,10 +261,10 @@ static void sub_02052F28(FieldSystem *fieldSystem, UnkStruct_0205300C *param1) SetAllGraphicsModes(&v1); Bg_MaskPalette(3, 0x0); - Bg_InitFromTemplate(fieldSystem->unk_08, 3, &v2, 0); + Bg_InitFromTemplate(fieldSystem->bgConfig, 3, &v2, 0); Bg_ClearTilesRange(3, 0x20, 0, 32); - Bg_FillTilemapRect(fieldSystem->unk_08, 3, 0x0, 0, 0, 32, 32, 17); - Bg_CopyTilemapBufferToVRAM(fieldSystem->unk_08, 3); + Bg_FillTilemapRect(fieldSystem->bgConfig, 3, 0x0, 0, 0, 32, 32, 17); + Bg_CopyTilemapBufferToVRAM(fieldSystem->bgConfig, 3); } static void sub_02052FA8(FieldSystem *fieldSystem, UnkStruct_0205300C *param1) @@ -273,11 +273,11 @@ static void sub_02052FA8(FieldSystem *fieldSystem, UnkStruct_0205300C *param1) param1->unk_2C = MessageBank_GetNewStrbufFromNARC(26, 213, 15, 32); - FieldMessage_AddWindow(fieldSystem->unk_08, ¶m1->unk_1C, 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, ¶m1->unk_1C, 3); FieldMessage_DrawWindow(¶m1->unk_1C, v0); param1->unk_34 = FieldMessage_Print(¶m1->unk_1C, param1->unk_2C, v0, 1); - param1->unk_30 = sub_0200E7FC(¶m1->unk_1C, 1024 - (18 + 12)); + param1->unk_30 = Window_AddWaitDial(¶m1->unk_1C, 1024 - (18 + 12)); } static BOOL sub_02052FFC(UnkStruct_0205300C *param0) @@ -288,7 +288,7 @@ static BOOL sub_02052FFC(UnkStruct_0205300C *param0) static void sub_0205300C(UnkStruct_0205300C *param0) { Strbuf_Free(param0->unk_2C); - DeleteWaitDial(param0->unk_30); + DestroyWaitDial(param0->unk_30); sub_0205D988(¶m0->unk_1C); } @@ -321,5 +321,5 @@ static void sub_02053098(FieldSystem *fieldSystem, UnkStruct_0205300C *param1) Window_Remove(¶m1->unk_1C); } - Bg_FreeTilemapBuffer(fieldSystem->unk_08, 3); + Bg_FreeTilemapBuffer(fieldSystem->bgConfig, 3); } diff --git a/src/unk_02054884.c b/src/unk_02054884.c index 86e72bcf8b..6f3147480f 100644 --- a/src/unk_02054884.c +++ b/src/unk_02054884.c @@ -4,6 +4,7 @@ #include #include "constants/battle/condition.h" +#include "constants/items.h" #include "struct_decls/struct_party_decl.h" @@ -41,11 +42,11 @@ BOOL sub_020548B0(int param0, SaveData *param1, u16 param2, u8 param3, u16 param v1 = Pokemon_New(param0); Pokemon_Init(v1); - Pokemon_InitWith(v1, param2, param3, 32, 0, 0, 0, 0); - Pokemon_SetCatchData(v1, v4, 4, param5, param6, param0); + Pokemon_InitWith(v1, param2, param3, 32, FALSE, 0, OTID_NOT_SET, 0); + Pokemon_SetCatchData(v1, v4, ITEM_POKE_BALL, param5, param6, param0); v2 = param4; - Pokemon_SetValue(v1, 6, &v2); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v2); v0 = Party_AddPokemon(v3, v1); if (v0) { @@ -187,14 +188,14 @@ int sub_02054B04(Party *param0, u16 param1) v4 = Party_GetPokemonBySlotIndex(param0, v2); if (Pokemon_CanBattle(v4)) { - if (Pokemon_GetValue(v4, MON_DATA_STATUS_CONDITION, NULL) & (0x80 | 0x8)) { + if (Pokemon_GetValue(v4, MON_DATA_STATUS_CONDITION, NULL) & (MON_CONDITION_TOXIC | MON_CONDITION_POISON)) { u32 v5 = Pokemon_GetValue(v4, MON_DATA_CURRENT_HP, NULL); if (v5 > 1) { v5--; } - Pokemon_SetValue(v4, 163, &v5); + Pokemon_SetValue(v4, MON_DATA_CURRENT_HP, &v5); if (v5 == 1) { v1++; diff --git a/src/unk_02055808.c b/src/unk_02055808.c index 274bdfdab2..5ae0fb00cb 100644 --- a/src/unk_02055808.c +++ b/src/unk_02055808.c @@ -62,7 +62,7 @@ void FieldTask_StartFieldMap(TaskManager *param0) static BOOL sub_02055898(TaskManager *param0) { - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } @@ -79,7 +79,7 @@ void sub_020558AC(TaskManager *param0) } { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 4); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 4); FieldTask_Start(param0, sub_02055898, NULL); } } @@ -94,7 +94,7 @@ void sub_020558F0(TaskManager *param0) } { - sub_0200F174(0, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 4); FieldTask_Start(param0, sub_02055898, NULL); } } diff --git a/src/unk_02055C50.c b/src/unk_02055C50.c index 3feb983191..6480fc8c7d 100644 --- a/src/unk_02055C50.c +++ b/src/unk_02055C50.c @@ -474,7 +474,7 @@ void sub_020562AC(FieldSystem *fieldSystem) v0->unk_0C = NULL; v0->unk_04 = PlayerAvatar_GetDir(fieldSystem->playerAvatar); - FieldTask_Start(fieldSystem->unk_10, sub_02056124, v0); + FieldTask_Start(fieldSystem->taskManager, sub_02056124, v0); } void sub_020562D8(FieldSystem *fieldSystem) diff --git a/src/unk_02056B30.c b/src/unk_02056B30.c index f53fb3a6e2..cd3d5be2cf 100644 --- a/src/unk_02056B30.c +++ b/src/unk_02056B30.c @@ -123,11 +123,11 @@ static BOOL sub_02056B70(TaskManager *taskMan) switch (v1->unk_00) { case 0: HBlankSystem_Stop(fieldSystem->unk_04->hBlankSystem); - sub_0200F174(v1->unk_04, v1->unk_08, v1->unk_0C, v1->unk_10, v1->unk_14, v1->unk_18, v1->unk_1C); + StartScreenTransition(v1->unk_04, v1->unk_08, v1->unk_0C, v1->unk_10, v1->unk_14, v1->unk_18, v1->unk_1C); v1->unk_00++; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { HBlankSystem_Start(fieldSystem->unk_04->hBlankSystem); Heap_FreeToHeap(v1); return 1; @@ -369,7 +369,7 @@ static BOOL sub_02056F1C(TaskManager *taskMan) (v1->unk_04)++; break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -571,7 +571,7 @@ static BOOL sub_02057218(TaskManager *taskMan) } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { (v1->unk_04)++; } break; diff --git a/src/unk_0205A0D8.c b/src/unk_0205A0D8.c index 44ebb30c98..94e5d5e98d 100644 --- a/src/unk_0205A0D8.c +++ b/src/unk_0205A0D8.c @@ -29,6 +29,7 @@ #include "player_avatar.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" @@ -36,7 +37,6 @@ #include "text.h" #include "trainer_info.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202602C.h" #include "unk_0202D778.h" @@ -550,7 +550,7 @@ static BOOL sub_0205A324(TaskManager *param0) } break; case 33: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_0205AAA0(v0, 0); sub_0205A0D8(v0, v0->fieldSystem, v0->unk_50, v0->unk_84, 1, 11); v0->unk_34 = 34; @@ -605,7 +605,7 @@ static BOOL sub_0205A324(TaskManager *param0) break; case 44: if (CommTiming_IsSyncState(4)) { - sub_0200E084(&(v0->unk_14), 0); + Window_EraseMessageBox(&(v0->unk_14), 0); v0->unk_08(0, NULL); v0->unk_34 = 5; } @@ -620,7 +620,7 @@ static int sub_0205AA50(UnkStruct_0205A0D8 *param0, const Strbuf *param1) Window *v0 = &(param0->unk_14); if (Window_IsInUse(v0) == 0) { - FieldMessage_AddWindow(param0->fieldSystem->unk_08, v0, 3); + FieldMessage_AddWindow(param0->fieldSystem->bgConfig, v0, 3); FieldMessage_DrawWindow(v0, SaveData_Options(param0->fieldSystem->saveData)); } else { sub_0205D988(v0); @@ -633,7 +633,7 @@ static void sub_0205AAA0(UnkStruct_0205A0D8 *param0, BOOL param1) { if (Window_IsInUse(&(param0->unk_14))) { if (param1) { - sub_0200E084(¶m0->unk_14, 0); + Window_EraseMessageBox(¶m0->unk_14, 0); Window_ClearAndCopyToVRAM(¶m0->unk_14); } @@ -655,7 +655,7 @@ static void sub_0205AAA0(UnkStruct_0205A0D8 *param0, BOOL param1) void sub_0205AB10(FieldSystem *fieldSystem, UnkFuncPtr_0205AB10 *param1) { UnkStruct_0205A0D8 *v0; - TaskManager *v1 = fieldSystem->unk_10; + TaskManager *v1 = fieldSystem->taskManager; if (v1) { return; @@ -738,7 +738,7 @@ static void sub_0205AC28(UnkStruct_0205A0D8 *param0) static UnkStruct_0205A0D8 *sub_0205AC74(FieldSystem *fieldSystem) { - return TaskManager_Environment(fieldSystem->unk_10); + return TaskManager_Environment(fieldSystem->taskManager); } static void sub_0205AC80(UnkStruct_0205A0D8 *param0, BOOL param1) @@ -874,8 +874,8 @@ static void sub_0205ADF8(UnkStruct_0205A0D8 *param0, int param1) v4 = MessageLoader_Init(1, 26, 412, 4); v3 = Pokemon_GetStructSize(); - Window_Add(param0->fieldSystem->unk_08, v0, 3, 21, 9, 10, 8, 13, 10); - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1, 11, 0, 4); + Window_Add(param0->fieldSystem->bgConfig, v0, 3, 21, 9, 10, 8, 13, 10); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1, 11, 0, 4); Window_FillTilemap(v0, 15); for (v1 = 0; v1 < 3; v1++) { @@ -892,7 +892,7 @@ static void sub_0205ADF8(UnkStruct_0205A0D8 *param0, int param1) Window_FillRectWithColor(v0, 15, 0, 0, 16, v0->height * 8); ColoredArrow_Print(param0->unk_78, ¶m0->unk_54, 0, param1 * 16); - Window_Show(¶m0->unk_54, 0, 1, 11); + Window_DrawStandardFrame(¶m0->unk_54, 0, 1, 11); param0->unk_81 = param1; param0->unk_80 = 3 + 1; @@ -906,8 +906,8 @@ static void sub_0205AF18(UnkStruct_0205A0D8 *param0, int param1) if (Window_IsInUse(v0) == 0) { int v1; - Window_Add(param0->fieldSystem->unk_08, v0, 3, 20, 11, 11, 6, 13, 90); - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 1, 11, 0, 4); + Window_Add(param0->fieldSystem->bgConfig, v0, 3, 20, 11, 11, 6, 13, 90); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 1, 11, 0, 4); Window_FillTilemap(v0, 15); for (v1 = 0; v1 < 3; v1++) { @@ -922,7 +922,7 @@ static void sub_0205AF18(UnkStruct_0205A0D8 *param0, int param1) Window_FillRectWithColor(v0, 15, 0, 0, 16, v0->height * 8); ColoredArrow_Print(param0->unk_78, param0->unk_7C, 0, param1 * 16); - Window_Show(param0->unk_7C, 0, 1, 11); + Window_DrawStandardFrame(param0->unk_7C, 0, 1, 11); } static int sub_0205AFE4(UnkStruct_0205A0D8 *param0) @@ -966,7 +966,7 @@ static int sub_0205AFE4(UnkStruct_0205A0D8 *param0) static void sub_0205B0B4(UnkStruct_0205A0D8 *param0) { - Window_Clear(param0->unk_7C, 1); + Window_EraseStandardFrame(param0->unk_7C, 1); } void sub_0205B0C0(int param0, int param1, void *param2, void *param3) @@ -1020,7 +1020,7 @@ static BOOL sub_0205B140(TaskManager *param0) MessageLoader_GetStrbuf(v1->unk_1C, 2 + v2->unk_03, v1->unk_00); StringTemplate_SetPlayerName(v1->unk_18, 0, CommInfo_TrainerInfo(v1->unk_24)); StringTemplate_Format(v1->unk_18, v1->unk_04, v1->unk_00); - FieldMessage_AddWindow(fieldSystem->unk_08, &v1->unk_08, 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, &v1->unk_08, 3); FieldMessage_DrawWindow(&v1->unk_08, SaveData_Options(fieldSystem->saveData)); v1->unk_20 = FieldMessage_Print(&v1->unk_08, v1->unk_04, SaveData_Options(fieldSystem->saveData), 1); @@ -1033,7 +1033,7 @@ static BOOL sub_0205B140(TaskManager *param0) StringTemplate_Free(v1->unk_18); Strbuf_Free(v1->unk_00); Strbuf_Free(v1->unk_04); - sub_0200E084(&v1->unk_08, 0); + Window_EraseMessageBox(&v1->unk_08, 0); Window_Remove(&v1->unk_08); ov5_021D1744(0); v1->unk_28++; @@ -1041,7 +1041,7 @@ static BOOL sub_0205B140(TaskManager *param0) } break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v1->unk_28++; } break; diff --git a/src/unk_0205CA94.c b/src/unk_0205CA94.c index 8971ead827..9679b38cd6 100644 --- a/src/unk_0205CA94.c +++ b/src/unk_0205CA94.c @@ -147,7 +147,7 @@ void sub_0205CA94(SysTask *param0, void *param1) } if (v1[0] == 2) { - sub_0200F174(0, 0, 0, 0x0, 6, 1, 4); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 4); } for (v2 = 0; v2 < v0->unk_1E0; v2++) { @@ -161,7 +161,7 @@ void sub_0205CA94(SysTask *param0, void *param1) } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_1E4++; } break; @@ -202,7 +202,7 @@ void sub_0205CBFC(SysTask *param0, void *param1) GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG0, 0); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG1, 0); sub_0205D274(v0, &v0->unk_1C0[0], 2); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 4); Sound_PlayEffect(1583); v0->unk_1E0 = 1; v0->unk_1E4++; @@ -210,7 +210,7 @@ void sub_0205CBFC(SysTask *param0, void *param1) case 2: v1 = v0->unk_1C0[0].unk_0C(&v0->unk_1C0[0]); - if ((v1 == 0) && (ScreenWipe_Done())) { + if ((v1 == 0) && (IsScreenTransitionDone())) { Sound_PlayEffect(1585); v0->unk_1E4++; v0->unk_1E8 = -255; @@ -272,7 +272,7 @@ void sub_0205CD3C(SysTask *param0, void *param1) if (v1 == 2) { v0->unk_1E8 = 0; - sub_0200F174(0, 0, 0, 0x7fff, 6, 1, 4); + StartScreenTransition(0, 0, 0, 0x7fff, 6, 1, 4); } if (v1 == 0) { @@ -280,7 +280,7 @@ void sub_0205CD3C(SysTask *param0, void *param1) } break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v0->unk_1E8 = 0; v0->unk_1E4++; } @@ -319,11 +319,11 @@ void sub_0205CE7C(SysTask *param0, void *param1) v0->unk_1E4++; break; case 1: - sub_0200F174(0, 1, 1, 0x7fff, 6, 1, 4); + StartScreenTransition(0, 1, 1, 0x7fff, 6, 1, 4); v0->unk_1E4++; break; case 2: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { Sound_PlayEffect(1586); v0->unk_1E4++; } diff --git a/src/unk_0205D8CC.c b/src/unk_0205D8CC.c index 8f9adeb3c9..7e21f5e996 100644 --- a/src/unk_0205D8CC.c +++ b/src/unk_0205D8CC.c @@ -7,9 +7,9 @@ #include "font.h" #include "game_options.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" -#include "unk_0200DA60.h" void sub_0205D8CC(u32 param0, u32 param1) { @@ -32,9 +32,9 @@ void FieldMessage_AddWindow(BgConfig *param0, Window *param1, u32 param2) void FieldMessage_DrawWindow(Window *param0, const Options *param1) { - sub_0200DD0C(param0->bgConfig, Window_GetBgLayer(param0), 1024 - (18 + 12), 10, Options_Frame(param1), 4); + LoadMessageBoxGraphics(param0->bgConfig, Window_GetBgLayer(param0), 1024 - (18 + 12), 10, Options_Frame(param1), 4); sub_0205D988(param0); - sub_0200E060(param0, 0, 1024 - (18 + 12), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 0, 1024 - (18 + 12), 10); } void sub_0205D988(Window *param0) @@ -93,7 +93,7 @@ void sub_0205DA1C(BgConfig *param0, Window *param1, u16 param2, u16 param3) void sub_0205DA80(Window *param0, u16 param1, u16 param2) { - sub_0200E2A4(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)), 9, param1, param2, 4); + LoadSignpostContentGraphics(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)), 9, param1, param2, 4); Window_FillTilemap(param0, 15); - sub_0200E69C(param0, 0, ((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)), 9, param1); + Window_DrawSignpost(param0, 0, ((1024 - (18 + 12) - 9 - (32 * 8)) - (18 + 12 + 24)), 9, param1); } diff --git a/src/unk_0205DFC4.c b/src/unk_0205DFC4.c index e2f9a351be..7ec015fc37 100644 --- a/src/unk_0205DFC4.c +++ b/src/unk_0205DFC4.c @@ -332,7 +332,7 @@ void sub_0205E318(TaskManager *param0, MapObject *param1, u16 param2, u16 param3 v1->unk_10 = param3; v1->unk_00 = param1; - FieldTask_Start(fieldSystem->unk_10, sub_0205E268, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0205E268, v1); } static BOOL sub_0205E3AC(TaskManager *param0) @@ -367,7 +367,7 @@ void sub_0205E3F4(TaskManager *param0, MapObject *param1, u16 param2, u16 param3 v1->unk_00 = param1; v1->unk_09 = 0; - FieldTask_Start(fieldSystem->unk_10, sub_0205E3AC, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0205E3AC, v1); } int sub_0205E430(u8 param0, u8 param1) diff --git a/src/unk_020683F4.c b/src/unk_020683F4.c index 24c449db18..edc2b71924 100644 --- a/src/unk_020683F4.c +++ b/src/unk_020683F4.c @@ -17,9 +17,9 @@ #include "functypes/funcptr_02069238.h" #include "overlay005/ov5_021D0D80.h" #include "overlay005/ov5_021DFB54.h" -#include "overlay005/ov5_021E1D20.h" #include "overlay005/ov5_021F007C.h" #include "overlay005/ov5_021F08CC.h" +#include "overlay005/save_info_window.h" #include "overlay005/struct_ov5_021F0468_decl.h" #include "overlay006/ov6_02247100.h" #include "savedata/save_table.h" @@ -40,10 +40,10 @@ #include "party.h" #include "player_avatar.h" #include "pokeradar.h" +#include "render_window.h" #include "save_player.h" #include "script_manager.h" #include "strbuf.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0202631C.h" #include "unk_02028124.h" @@ -950,7 +950,7 @@ static BOOL sub_02068F48(TaskManager *param0) switch (v1->unk_16) { case 0: MapObjectMan_PauseAllMovement(fieldSystem->mapObjMan); - FieldMessage_AddWindow(fieldSystem->unk_08, &v1->unk_00, 3); + FieldMessage_AddWindow(fieldSystem->bgConfig, &v1->unk_00, 3); { const Options *v2 = SaveData_Options(fieldSystem->saveData); @@ -963,7 +963,7 @@ static BOOL sub_02068F48(TaskManager *param0) case 1: if (FieldMessage_FinishedPrinting(v1->unk_14) == 1) { if (gCoreSys.pressedKeys & (PAD_KEY | PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(&v1->unk_00, 0); + Window_EraseMessageBox(&v1->unk_00, 0); v1->unk_16++; } } @@ -1070,7 +1070,7 @@ static u32 sub_02069130(const UnkStruct_020684D0 *param0) return -1; } - if (Pokedex_IsNationalUnlocked(SaveData_Pokedex(param0->fieldSystem->saveData)) == 0) { + if (Pokedex_IsNationalDexObtained(SaveData_Pokedex(param0->fieldSystem->saveData)) == FALSE) { return -1; } @@ -1102,7 +1102,7 @@ static BOOL sub_020691BC(UnkStruct_02068870 *param0) static void *sub_020691CC(void *param0) { - ov5_021E2064(param0); + FieldSystem_SaveStateIfCommunicationOff(param0); sub_0203DE88(param0, ((FieldSystem *)param0)->saveData); return NULL; @@ -1214,7 +1214,7 @@ static BOOL sub_0206932C(TaskManager *taskMan) v1->unk_2A = 1; break; case 1: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { v1->unk_24 = v1->unk_20(fieldSystem); v1->unk_2A = 2; } @@ -1243,7 +1243,7 @@ static BOOL sub_0206932C(TaskManager *taskMan) } break; case 4: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { MapObjectMan_UnpauseAllMovement(fieldSystem->mapObjMan); Heap_FreeToHeap(v1); return 1; diff --git a/src/unk_0206B9D8.c b/src/unk_0206B9D8.c index f80f73f096..57bb3012af 100644 --- a/src/unk_0206B9D8.c +++ b/src/unk_0206B9D8.c @@ -215,7 +215,7 @@ void sub_0206BBFC(TaskManager *param0, void **param1, u8 param2, u8 param3, u8 p v1->unk_0D = param7; v1->unk_14 = param1; - FieldTask_Start(fieldSystem->unk_10, sub_0206BB94, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0206BB94, v1); } static int sub_0206BC48(UnkStruct_0206BC48 *param0, FieldSystem *fieldSystem) @@ -280,7 +280,7 @@ void sub_0206BCE4(TaskManager *param0, u16 param1, u16 param2, u16 param3) v1->unk_14 = param3; v1->unk_10 = param2; - FieldTask_Start(fieldSystem->unk_10, sub_0206BC94, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0206BC94, v1); } static BOOL sub_0206BD1C(TaskManager *param0) @@ -323,7 +323,7 @@ void sub_0206BD88(TaskManager *param0, u16 param1, u16 param2) v1->unk_00 = param1; v1->unk_02 = param2; - FieldTask_Start(fieldSystem->unk_10, sub_0206BD1C, v1); + FieldTask_Start(fieldSystem->taskManager, sub_0206BD1C, v1); } u16 sub_0206BDBC(SaveData *param0) diff --git a/src/unk_0206C0E8.c b/src/unk_0206C0E8.c index 173203782e..fdde946c84 100644 --- a/src/unk_0206C0E8.c +++ b/src/unk_0206C0E8.c @@ -47,7 +47,7 @@ void sub_0206C0E8(FieldSystem *fieldSystem) v0->unk_0C = 0; v0->unk_0D = 0; - FieldTask_Start(fieldSystem->unk_10, sub_0206C120, v0); + FieldTask_Start(fieldSystem->taskManager, sub_0206C120, v0); } static BOOL sub_0206C120(TaskManager *taskMan) diff --git a/src/unk_0206C784.c b/src/unk_0206C784.c index 45222121c9..9108ab4229 100644 --- a/src/unk_0206C784.c +++ b/src/unk_0206C784.c @@ -127,7 +127,7 @@ void sub_0206C784(FieldSystem *fieldSystem, const u8 param1, const u8 param2, co v0->unk_00 = 2; } - FieldTask_Start(fieldSystem->unk_10, sub_0206C964, v0); + FieldTask_Start(fieldSystem->taskManager, sub_0206C964, v0); } static void sub_0206C8D4(FieldSystem *fieldSystem, const u8 param1, UnkStruct_ov5_021D5894 *param2) @@ -139,7 +139,7 @@ static void sub_0206C8D4(FieldSystem *fieldSystem, const u8 param1, UnkStruct_ov v0->unk_04 = param2; v0->unk_00 = param1; - FieldTask_Start(fieldSystem->unk_10, sub_0206C8F8, v0); + FieldTask_Start(fieldSystem->taskManager, sub_0206C8F8, v0); } static BOOL sub_0206C8F8(TaskManager *taskMan) @@ -202,12 +202,12 @@ static BOOL sub_0206C964(TaskManager *taskMan) } } break; case 2: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 11); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 11); sub_0200564C(0, 6); v1->unk_00 = 3; break; case 3: - if (!ScreenWipe_Done() || (Sound_CheckFade() != 0)) { + if (!IsScreenTransitionDone() || (Sound_CheckFade() != 0)) { return 0; } diff --git a/src/unk_0206CCB0.c b/src/unk_0206CCB0.c index c45c04fcab..e9d442e02a 100644 --- a/src/unk_0206CCB0.c +++ b/src/unk_0206CCB0.c @@ -774,7 +774,7 @@ static BOOL sub_0206D320(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param PokedexData *v0 = SaveData_Pokedex(fieldSystem->saveData); UnkStruct_0206D140 *v1 = ov6_02246498(param1); - return Pokedex_HasEncountered(v0, v1->unk_06); + return Pokedex_HasSeenSpecies(v0, v1->unk_06); } void sub_0206D340(FieldSystem *fieldSystem, BOOL param1, u16 param2, Pokemon *param3) @@ -815,7 +815,7 @@ static BOOL sub_0206D3C0(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param return 1; } - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } static void sub_0206D3E4(FieldSystem *fieldSystem, int param1) @@ -936,7 +936,7 @@ static int sub_0206D5B0(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr static BOOL sub_0206D5F0(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { UnkStruct_0206D5B0 *v0 = (UnkStruct_0206D5B0 *)ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } void sub_0206D60C(FieldSystem *fieldSystem, Pokemon *param1) @@ -965,7 +965,7 @@ static BOOL sub_0206D6A8(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param PokedexData *v0 = SaveData_Pokedex(fieldSystem->saveData); UnkStruct_0206D644 *v1 = (UnkStruct_0206D644 *)ov6_02246498(param1); - return Pokedex_HasEncountered(v0, v1->unk_00); + return Pokedex_HasSeenSpecies(v0, v1->unk_00); } void sub_0206D6C8(FieldSystem *fieldSystem, int param1, int param2) @@ -1026,7 +1026,7 @@ static BOOL sub_0206D7A4(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param PokedexData *v0 = SaveData_Pokedex(fieldSystem->saveData); UnkStruct_0206D75C *v1 = (UnkStruct_0206D75C *)ov6_02246498(param1); - return Pokedex_HasEncountered(v0, v1->unk_00); + return Pokedex_HasSeenSpecies(v0, v1->unk_00); } void sub_0206D7C4(FieldSystem *fieldSystem) @@ -1093,7 +1093,7 @@ static BOOL sub_0206D8F0(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param { UnkStruct_0206D8B0 *v0 = (UnkStruct_0206D8B0 *)ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } void sub_0206D90C(TVBroadcast *fieldSystem, Pokemon *param1, u16 param2) @@ -1172,7 +1172,7 @@ static BOOL sub_0206DA50(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param { UnkStruct_0206D9F4 *v0 = (UnkStruct_0206D9F4 *)ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } static void sub_0206DA6C(UnkStruct_0206DA6C *param0, const TrainerInfo *param1) @@ -1305,7 +1305,7 @@ static BOOL sub_0206DC3C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param { UnkStruct_0206DBE8 *v0 = (UnkStruct_0206DBE8 *)ov6_02246498(param1); - if (Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_02) == 0) { + if (Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_02) == 0) { return 0; } @@ -1342,7 +1342,7 @@ static int sub_0206DC9C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr static BOOL sub_0206DD1C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { UnkStruct_0206DC9C *v0 = (UnkStruct_0206DC9C *)ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } void sub_0206DD38(FieldSystem *fieldSystem, u32 param1, u32 param2, u32 param3) @@ -1683,7 +1683,7 @@ static BOOL sub_0206E248(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param { UnkStruct_0206E1C0 *v0 = ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } void sub_0206E264(FieldSystem *fieldSystem, u16 param1) @@ -1743,7 +1743,7 @@ static int sub_0206E300(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr static BOOL sub_0206E37C(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { UnkStruct_0206E300 *v0 = ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00.unk_02); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00.unk_02); } void sub_0206E398(FieldSystem *fieldSystem, u16 param1) @@ -1777,7 +1777,7 @@ static int sub_0206E3C8(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr static BOOL sub_0206E3F8(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { UnkStruct_0206E3C8 *v0 = ov6_02246498(param1); - return Pokedex_HasEncountered(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); + return Pokedex_HasSeenSpecies(SaveData_Pokedex(fieldSystem->saveData), v0->unk_00); } void sub_0206E414(FieldSystem *fieldSystem, u16 param1) @@ -2760,7 +2760,7 @@ static int sub_0206F01C(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr v1 = (LCRNG_Next() % (NATIONAL_DEX_COUNT - 1)) + 1; for (v2 = 1; v2 <= NATIONAL_DEX_COUNT; v2++) { - if (Pokedex_HasEncountered(v4, v1) == 1) { + if (Pokedex_HasSeenSpecies(v4, v1) == TRUE) { v3 = v1; break; } @@ -2804,12 +2804,12 @@ static Strbuf *sub_0206F0D8(u16 param0, u32 param1) static BOOL sub_0206F100(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { - const PokedexData *v0 = SaveData_Pokedex(fieldSystem->saveData); + const PokedexData *pokedex = SaveData_Pokedex(fieldSystem->saveData); - if (sub_02027520(v0) == 1) { - return 1; + if (Pokedex_IsObtained(pokedex) == TRUE) { + return TRUE; } else { - return 0; + return FALSE; } } @@ -2861,7 +2861,7 @@ static int sub_0206F160(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr v1 = (LCRNG_Next() % (NATIONAL_DEX_COUNT - 2) + 1); for (v2 = 1; v2 <= NATIONAL_DEX_COUNT; v2++) { - if (Pokedex_HasEncountered(v6, v1) == 1) { + if (Pokedex_HasSeenSpecies(v6, v1) == TRUE) { v0 = sub_0206F0D8(v1, 4); StringTemplate_SetStrbuf(param1, 2, v0, 0, 1, GAME_LANGUAGE); Strbuf_Free(v0); @@ -2882,12 +2882,12 @@ static int sub_0206F160(FieldSystem *fieldSystem, StringTemplate *param1, UnkStr static BOOL sub_0206F260(FieldSystem *fieldSystem, UnkStruct_ov6_022465F4 *param1) { - const PokedexData *v0 = SaveData_Pokedex(fieldSystem->saveData); + const PokedexData *pokedex = SaveData_Pokedex(fieldSystem->saveData); - if (sub_02027520(v0) == 1) { - return 1; + if (Pokedex_IsObtained(pokedex) == TRUE) { + return TRUE; } else { - return 0; + return FALSE; } } diff --git a/src/unk_0206F314.c b/src/unk_0206F314.c index c7ef135d54..2c008db6ae 100644 --- a/src/unk_0206F314.c +++ b/src/unk_0206F314.c @@ -3,21 +3,16 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_0202E8C0_decl.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_defs/sprite_template.h" #include "struct_defs/struct_0200D0F4.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0202EE10.h" #include "struct_defs/struct_0202EE10_sub1.h" #include "field/field_system.h" #include "overlay005/ov5_021D2F14.h" #include "overlay005/struct_ov5_021D30A8.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "overlay104/struct_ov104_02241308.h" #include "bg_window.h" @@ -26,19 +21,19 @@ #include "font.h" #include "game_options.h" #include "heap.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "narc.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0202E840.h" #include "unk_020508D4.h" @@ -96,10 +91,10 @@ typedef struct { u16 unk_26; u16 unk_28; UnkStruct_0206F7F8_sub1 unk_2C; - UnkStruct_ov84_02240FA8 unk_A0; - BmpList *unk_C0; - ResourceMetadata *unk_C4; - UIControlData *unk_C8; + ListMenuTemplate unk_A0; + ListMenu *unk_C0; + StringList *unk_C4; + Menu *unk_C8; FieldSystem *fieldSystem; BgConfig *unk_D0; Window unk_D4; @@ -131,7 +126,7 @@ static void sub_0206FCC4(UnkStruct_0206F7F8 *param0); static void sub_0206FD94(UnkStruct_0206F7F8 *param0); static void sub_0206FDC0(UnkStruct_0206F7F8 *param0, u16 param1, u16 param2); static void sub_0206FF10(UnkStruct_0206F7F8 *param0); -static void sub_0206FF60(BmpList *param0, u32 param1, u8 param2); +static void sub_0206FF60(ListMenu *param0, u32 param1, u8 param2); static void sub_0206FFB4(UnkStruct_0206F7F8 *param0); static void sub_0206FFE4(UnkStruct_0206F7F8 *param0); static void sub_02070010(UnkStruct_0206F7F8 *param0); @@ -139,7 +134,7 @@ static void sub_02070050(UnkStruct_0206F7F8 *param0, BOOL param1); static void sub_020701DC(UnkStruct_0206F7F8 *param0, u16 param1); static void sub_02070288(UnkStruct_0206F7F8 *param0); -static const UnkStruct_ov84_02240FA8 Unk_020F02B0 = { +static const ListMenuTemplate Unk_020F02B0 = { NULL, NULL, NULL, @@ -205,7 +200,7 @@ static int sub_0206F314(UnkStruct_0206F314 *param0, FieldSystem *fieldSystem, u1 v0->unk_18 = sub_0202E840(v0->unk_16); v0->unk_19 = sub_0202E84C(v0->unk_16); v0->fieldSystem = fieldSystem; - v0->unk_D0 = fieldSystem->unk_08; + v0->unk_D0 = fieldSystem->bgConfig; v0->unk_304 = sub_0202E8C0(v1); v0->unk_1A = Options_TextFrameDelay(SaveData_Options(v1)); v0->unk_1C = Options_Frame(SaveData_Options(v1)); @@ -275,7 +270,7 @@ static int sub_0206F498(UnkStruct_0206F7F8 *param0) { s32 v0; - v0 = sub_02001288(param0->unk_C0); + v0 = ListMenu_ProcessInput(param0->unk_C0); if (gCoreSys.pressedKeys & PAD_BUTTON_B) { Sound_PlayEffect(1500); @@ -381,7 +376,7 @@ static void sub_0206F62C(UnkStruct_0206F7F8 *param0) 0x355 }; - param0->unk_C8 = sub_02002100(param0->unk_D0, &v0, (1024 - (18 + 12) - 9), 11, param0->unk_00); + param0->unk_C8 = Menu_MakeYesNoChoice(param0->unk_D0, &v0, (1024 - (18 + 12) - 9), 11, param0->unk_00); } static int sub_0206F658(UnkStruct_0206F7F8 *param0) @@ -404,7 +399,7 @@ static int sub_0206F658(UnkStruct_0206F7F8 *param0) param0->unk_0C++; break; case 2: - switch (sub_02002114(param0->unk_C8, param0->unk_00)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_C8, param0->unk_00)) { case 0: param0->unk_0C++; break; @@ -590,9 +585,9 @@ static void sub_0206FB38(UnkStruct_0206F7F8 *param0) Bg_SetPriority(0, 2); Bg_SetPriority(1, 1); - sub_0200DD0C(param0->unk_D0, 3, (1024 - (18 + 12)), 10, param0->unk_1C, param0->unk_00); - sub_0200DAA4(param0->unk_D0, 3, (1024 - (18 + 12) - 9), 11, 0, param0->unk_00); - sub_0200DAA4(param0->unk_D0, 1, (1024 - (18 + 12) - 9), 11, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_D0, 3, (1024 - (18 + 12)), 10, param0->unk_1C, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_D0, 3, (1024 - (18 + 12) - 9), 11, 0, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_D0, 1, (1024 - (18 + 12) - 9), 11, 0, param0->unk_00); Font_LoadTextPalette(0, 13 * 32, param0->unk_00); Font_LoadScreenIndicatorsPalette(0, 12 * 32, param0->unk_00); Window_Add(param0->unk_D0, ¶m0->unk_E4, 3, 2, 19, 27, 4, 12, ((1024 - (18 + 12) - 9) - 27 * 4)); @@ -601,7 +596,7 @@ static void sub_0206FB38(UnkStruct_0206F7F8 *param0) static void sub_0206FC4C(UnkStruct_0206F7F8 *param0) { - sub_0200E084(¶m0->unk_E4, 1); + Window_EraseMessageBox(¶m0->unk_E4, 1); Window_ClearAndCopyToVRAM(¶m0->unk_E4); Window_Remove(¶m0->unk_E4); Bg_ClearTilesRange(1, 32 * (24 * (12 + 2) + 9 + 1), 0, param0->unk_00); @@ -685,30 +680,30 @@ static void sub_0206FDC0(UnkStruct_0206F7F8 *param0, u16 param1, u16 param2) int v0, v1; v1 = param0->unk_18 + 1; - param0->unk_C4 = sub_02013A04(v1, param0->unk_00); + param0->unk_C4 = StringList_New(v1, param0->unk_00); Window_Add(param0->unk_D0, ¶m0->unk_D4, 1, 4, 1, 24, v1 * 2, 13, 1); Window_FillTilemap(¶m0->unk_D4, ((15 << 4) | 15)); for (v0 = 0; v0 < param0->unk_18; v0++) { - sub_02013A6C(param0->unk_C4, param0->unk_2C.unk_38[v0], v0); + StringList_AddFromStrbuf(param0->unk_C4, param0->unk_2C.unk_38[v0], v0); } - sub_02013A6C(param0->unk_C4, param0->unk_2C.unk_0C, 0xFFFF); + StringList_AddFromStrbuf(param0->unk_C4, param0->unk_2C.unk_0C, 0xFFFF); - MI_CpuCopy8((void *)&Unk_020F02B0, (void *)&(param0->unk_A0), sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8((void *)&Unk_020F02B0, (void *)&(param0->unk_A0), sizeof(ListMenuTemplate)); - param0->unk_A0.unk_0C = &(param0->unk_D4); - param0->unk_A0.unk_00 = param0->unk_C4; - param0->unk_A0.unk_1C = (void *)param0; - param0->unk_A0.unk_10 = v1; - param0->unk_A0.unk_17_0 = 0; - param0->unk_A0.unk_04 = sub_0206FF60; - param0->unk_A0.unk_08 = NULL; - param0->unk_C0 = sub_0200112C(&(param0->unk_A0), param1, param2, param0->unk_00); + param0->unk_A0.window = &(param0->unk_D4); + param0->unk_A0.choices = param0->unk_C4; + param0->unk_A0.tmp = (void *)param0; + param0->unk_A0.count = v1; + param0->unk_A0.yOffset = 0; + param0->unk_A0.cursorCallback = sub_0206FF60; + param0->unk_A0.printCallback = NULL; + param0->unk_C0 = ListMenu_New(&(param0->unk_A0), param1, param2, param0->unk_00); - Window_Show(¶m0->unk_D4, 0, (1024 - (18 + 12) - 9), 11); - sub_0200E060(¶m0->unk_E4, 1, (1024 - (18 + 12)), 10); + Window_DrawStandardFrame(¶m0->unk_D4, 0, (1024 - (18 + 12) - 9), 11); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_E4, 1, (1024 - (18 + 12)), 10); Window_FillTilemap(¶m0->unk_E4, ((15 << 4) | 15)); Text_AddPrinterWithParamsAndColor(¶m0->unk_E4, FONT_MESSAGE, param0->unk_2C.unk_10, 0, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 15), NULL); SpriteActor_EnableObject(param0->unk_2FC[0], 1); @@ -717,26 +712,26 @@ static void sub_0206FDC0(UnkStruct_0206F7F8 *param0, u16 param1, u16 param2) static void sub_0206FF10(UnkStruct_0206F7F8 *param0) { - sub_02001384(param0->unk_C0, &(param0->unk_22), &(param0->unk_24)); - sub_02013A3C(param0->unk_C4); + ListMenu_Free(param0->unk_C0, &(param0->unk_22), &(param0->unk_24)); + StringList_Free(param0->unk_C4); Window_ClearAndCopyToVRAM(&(param0->unk_D4)); - Window_Clear(&(param0->unk_D4), 0); + Window_EraseStandardFrame(&(param0->unk_D4), 0); Window_Remove(&(param0->unk_D4)); SpriteActor_EnableObject(param0->unk_2FC[0], 0); Bg_ScheduleTilemapTransfer(param0->unk_D0, 3); } -static void sub_0206FF60(BmpList *param0, u32 param1, u8 param2) +static void sub_0206FF60(ListMenu *param0, u32 param1, u8 param2) { u16 v0, v1, v2; - UnkStruct_0206F7F8 *v3 = (UnkStruct_0206F7F8 *)sub_02001504(param0, 19); + UnkStruct_0206F7F8 *v3 = (UnkStruct_0206F7F8 *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(1500); } - sub_020014DC(param0, &v0, &v1); - v2 = sub_02001504(param0, 2); + ListMenu_GetListAndCursorPos(param0, &v0, &v1); + v2 = ListMenu_GetAttribute(param0, 2); SpriteActor_SetSpritePositionXY(v3->unk_2FC[0], 126, 16 + 16 * (v1 + v0)); } @@ -826,7 +821,7 @@ static void sub_02070050(UnkStruct_0206F7F8 *param0, BOOL param1) static void sub_020701DC(UnkStruct_0206F7F8 *param0, u16 param1) { Window_Add(param0->unk_D0, ¶m0->unk_D4, 1, 4, 1, 24, 12, 13, 1); - Window_Show(¶m0->unk_D4, 1, (1024 - (18 + 12) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_D4, 1, (1024 - (18 + 12) - 9), 11); sub_02070050(param0, 0); SpriteActor_EnableObject(param0->unk_2FC[1], 1); Window_Add(param0->unk_D0, ¶m0->unk_F4, 3, 8, 14, 8, 2, 13, ((((1024 - (18 + 12) - 9) - 27 * 4) - 6 * 4) - (8 * 2))); @@ -838,7 +833,7 @@ static void sub_020701DC(UnkStruct_0206F7F8 *param0, u16 param1) static void sub_02070288(UnkStruct_0206F7F8 *param0) { Window_ClearAndCopyToVRAM(¶m0->unk_D4); - Window_Clear(¶m0->unk_D4, 0); + Window_EraseStandardFrame(¶m0->unk_D4, 0); Window_Remove(¶m0->unk_D4); Window_ClearAndCopyToVRAM(¶m0->unk_F4); Window_Remove(¶m0->unk_F4); @@ -917,5 +912,5 @@ void sub_020703FC(TaskManager *param0, u16 param1) v1->unk_04 = param1; v1->unk_08 = NULL; - FieldTask_Start(fieldSystem->unk_10, sub_020702D0, v1); + FieldTask_Start(fieldSystem->taskManager, sub_020702D0, v1); } diff --git a/src/unk_0207160C.c b/src/unk_0207160C.c index bb38cf18fb..fabed38615 100644 --- a/src/unk_0207160C.c +++ b/src/unk_0207160C.c @@ -306,11 +306,11 @@ void sub_0207183C(FieldSystem *fieldSystem) if (v1->unk_00 == 0) { v2->unk_04 = Unk_020F03F4[v1->unk_02].unk_00[1]; - FieldTask_Start(fieldSystem->unk_10, sub_020718D8, v2); + FieldTask_Start(fieldSystem->taskManager, sub_020718D8, v2); v1->unk_00 = 1; } else { v2->unk_04 = Unk_020F03F4[v1->unk_02].unk_00[0]; - FieldTask_Start(fieldSystem->unk_10, sub_020719D8, v2); + FieldTask_Start(fieldSystem->taskManager, sub_020719D8, v2); v1->unk_00 = 0; } } @@ -442,8 +442,8 @@ static void sub_02071ACC(const int param0) static void sub_02071AEC(const int param0) { if (param0 == 0) { - sub_020057A4(1553, 0); + Sound_StopEffect(1553, 0); } else { - sub_020057A4(1556, 0); + Sound_StopEffect(1556, 0); } } diff --git a/src/unk_02071D40.c b/src/unk_02071D40.c index a4c0873cbe..7a2d151218 100644 --- a/src/unk_02071D40.c +++ b/src/unk_02071D40.c @@ -64,7 +64,7 @@ void sub_02071D40(const u8 param0, const u8 param1, const u8 param2, const u8 pa sub_02072014(param0, GAME_VERSION, v3, param2, TrainerInfo_RegionCode(v0), param5); } - sub_02072038(TrainerInfo_ID_LowHalf(v0), TrainerInfo_Gender(v0), TrainerInfo_Name(v0), TrainerInfo_Money(v0), sub_02026E48(SaveData_Pokedex(fieldSystem->saveData)), sub_02027520(SaveData_Pokedex(fieldSystem->saveData)), GameRecords_GetTrainerScore(v1), param5); + sub_02072038(TrainerInfo_ID_LowHalf(v0), TrainerInfo_Gender(v0), TrainerInfo_Name(v0), TrainerInfo_Money(v0), Pokedex_CountSeen(SaveData_Pokedex(fieldSystem->saveData)), Pokedex_IsObtained(SaveData_Pokedex(fieldSystem->saveData)), GameRecords_GetTrainerScore(v1), param5); { RTCDate v4; @@ -282,7 +282,7 @@ void sub_02072204(FieldSystem *fieldSystem) v0->unk_00 = 0; v0->unk_04 = (TrainerCard *)sub_0205C17C(fieldSystem->unk_7C); - FieldTask_Start(fieldSystem->unk_10, sub_02072230, v0); + FieldTask_Start(fieldSystem->taskManager, sub_02072230, v0); } static BOOL sub_02072230(TaskManager *param0) diff --git a/src/unk_020722AC.c b/src/unk_020722AC.c index 93d6051818..e752500c50 100644 --- a/src/unk_020722AC.c +++ b/src/unk_020722AC.c @@ -1,13 +1,9 @@ #include #include -#include "struct_decls/struct_0200112C_decl.h" -#include "struct_decls/struct_02001AF4_decl.h" -#include "struct_decls/struct_02013A04_decl.h" #include "struct_decls/struct_02028430_decl.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_decls/struct_party_decl.h" -#include "struct_defs/struct_02013A04_t.h" #include "struct_defs/struct_0202818C.h" #include "struct_defs/struct_0206A844.h" #include "struct_defs/struct_02097728.h" @@ -17,7 +13,6 @@ #include "overlay005/ov5_021D37AC.h" #include "overlay005/ov5_021D431C.h" #include "overlay006/ov6_02247078.h" -#include "overlay084/struct_ov84_02240FA8.h" #include "bag.h" #include "bg_window.h" @@ -27,23 +22,23 @@ #include "game_options.h" #include "heap.h" #include "item.h" +#include "list_menu.h" +#include "menu.h" #include "message.h" #include "party.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "save_player.h" #include "savedata.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" -#include "unk_0200112C.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02028124.h" #include "unk_0203D1B8.h" #include "unk_020508D4.h" @@ -101,10 +96,10 @@ typedef struct { u8 unk_13B_6 : 2; u16 unk_13C; u16 unk_13E; - UnkStruct_ov84_02240FA8 unk_140; - BmpList *unk_160; - ResourceMetadata *unk_164; - UIControlData *unk_168; + ListMenuTemplate unk_140; + ListMenu *unk_160; + StringList *unk_164; + Menu *unk_168; FieldSystem *fieldSystem; BgConfig *unk_170; Window unk_174; @@ -143,10 +138,10 @@ static void sub_02072EB8(UnkStruct_02072EB8 *param0, u8 param1); static void sub_02072ED0(UnkStruct_02072EB8 *param0, u8 param1, int param2); static void sub_02072F04(UnkStruct_02072EB8 *param0, u8 param1); static void sub_020729B4(UnkStruct_02072334 *param0); -static void sub_02072BBC(BmpList *param0, u32 param1, u8 param2); -static void sub_02072C0C(BmpList *param0, u32 param1, u8 param2); +static void sub_02072BBC(ListMenu *param0, u32 param1, u8 param2); +static void sub_02072C0C(ListMenu *param0, u32 param1, u8 param2); static void sub_02072C98(UnkStruct_02072334 *param0, u8 param1, u8 param2); -static void sub_02072DA4(BmpList *param0, u32 param1, u8 param2); +static void sub_02072DA4(ListMenu *param0, u32 param1, u8 param2); static void sub_02072DB8(UnkStruct_02072334 *param0); static void sub_02072E4C(UnkStruct_02072334 *param0); static void sub_02072F30(UnkStruct_02072334 *param0, SaveData *param1, int param2); @@ -168,7 +163,7 @@ static int sub_020734F4(UnkStruct_02072334 *param0, u8 param1); static int sub_02073524(UnkStruct_02072334 *param0, int param1); static int sub_020735E8(UnkStruct_02072334 *param0); -static const UnkStruct_ov84_02240FA8 Unk_020F0504 = { +static const ListMenuTemplate Unk_020F0504 = { NULL, NULL, NULL, @@ -254,7 +249,7 @@ static void sub_02072390(SysTask *param0, void *param1) UnkStruct_02072334 *v0 = (UnkStruct_02072334 *)param1; s32 v1; - v1 = sub_02001288(v0->unk_160); + v1 = ListMenu_ProcessInput(v0->unk_160); if (v0->unk_1A4 != NULL) { sub_0206A870(v0->unk_1A4); @@ -314,7 +309,7 @@ static void sub_02072470(SysTask *param0, void *param1) UnkStruct_02072334 *v0 = (UnkStruct_02072334 *)param1; s32 v1; - v1 = sub_02001288(v0->unk_160); + v1 = ListMenu_ProcessInput(v0->unk_160); if (gCoreSys.pressedKeys & PAD_BUTTON_B) { sub_02072EA4(v0, sub_02072534, sub_02072370); @@ -689,7 +684,7 @@ static void sub_020729B4(UnkStruct_02072334 *param0) Window_FillTilemap(¶m0->unk_174, ((15 << 4) | 15)); Window_FillTilemap(¶m0->unk_194, ((15 << 4) | 15)); - param0->unk_164 = sub_02013A04(param0->unk_1B + 1, param0->unk_00); + param0->unk_164 = StringList_New(param0->unk_1B + 1, param0->unk_00); for (v0 = 0; v0 < 20; v0++) { v2 = &(param0->unk_1C[v0]); @@ -698,22 +693,22 @@ static void sub_020729B4(UnkStruct_02072334 *param0) continue; } - sub_02013A6C(param0->unk_164, v2->unk_08, v2->unk_00); + StringList_AddFromStrbuf(param0->unk_164, v2->unk_08, v2->unk_00); v1++; } - sub_02013A6C(param0->unk_164, param0->unk_110.unk_08, 0xFFFF); + StringList_AddFromStrbuf(param0->unk_164, param0->unk_110.unk_08, 0xFFFF); v1++; - MI_CpuCopy8((void *)&Unk_020F0504, (void *)&(param0->unk_140), sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8((void *)&Unk_020F0504, (void *)&(param0->unk_140), sizeof(ListMenuTemplate)); - param0->unk_140.unk_0C = &(param0->unk_174); - param0->unk_140.unk_00 = param0->unk_164; - param0->unk_140.unk_1C = (void *)param0; - param0->unk_140.unk_10 = v1; - param0->unk_140.unk_17_0 = 6; - param0->unk_140.unk_04 = sub_02072C0C; - param0->unk_140.unk_08 = sub_02072BBC; + param0->unk_140.window = &(param0->unk_174); + param0->unk_140.choices = param0->unk_164; + param0->unk_140.tmp = (void *)param0; + param0->unk_140.count = v1; + param0->unk_140.yOffset = 6; + param0->unk_140.cursorCallback = sub_02072C0C; + param0->unk_140.printCallback = sub_02072BBC; if (param0->unk_13B_4) { if (param0->unk_13C == 0) { @@ -729,38 +724,38 @@ static void sub_020729B4(UnkStruct_02072334 *param0) param0->unk_13B_4 = 0; } - param0->unk_160 = sub_0200112C(&(param0->unk_140), param0->unk_13C, param0->unk_13E, param0->unk_00); + param0->unk_160 = ListMenu_New(&(param0->unk_140), param0->unk_13C, param0->unk_13E, param0->unk_00); - Window_Show(¶m0->unk_174, 0, (1024 - (18 + 12) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_174, 0, (1024 - (18 + 12) - 9), 11); Text_AddPrinterWithParamsAndColor(¶m0->unk_194, FONT_SYSTEM, param0->unk_110.unk_0C, 2, 0, TEXT_SPEED_INSTANT, TEXT_COLOR(1, 2, 15), NULL); - Window_Show(¶m0->unk_194, 0, (1024 - (18 + 12) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_194, 0, (1024 - (18 + 12) - 9), 11); Bg_ScheduleTilemapTransfer(param0->unk_170, 3); param0->unk_13B_0 = 0; } -static void sub_02072BBC(BmpList *param0, u32 param1, u8 param2) +static void sub_02072BBC(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_02072334 *v0 = (UnkStruct_02072334 *)sub_02001504(param0, 19); + UnkStruct_02072334 *v0 = (UnkStruct_02072334 *)ListMenu_GetAttribute(param0, 19); if (param1 == 0xFFFF) { - sub_0200147C(param0, 1, 15, 2); + ListMenu_SetAltTextColors(param0, 1, 15, 2); } else { if (v0->unk_1C[param1].unk_04) { - sub_0200147C(param0, 3, 15, 4); + ListMenu_SetAltTextColors(param0, 3, 15, 4); } else { - sub_0200147C(param0, 7, 15, 8); + ListMenu_SetAltTextColors(param0, 7, 15, 8); } } } -static void sub_02072C0C(BmpList *param0, u32 param1, u8 param2) +static void sub_02072C0C(ListMenu *param0, u32 param1, u8 param2) { u16 v0, v1, v2; - UnkStruct_02072334 *v3 = (UnkStruct_02072334 *)sub_02001504(param0, 19); + UnkStruct_02072334 *v3 = (UnkStruct_02072334 *)ListMenu_GetAttribute(param0, 19); - sub_020014DC(param0, &v0, &v1); - v2 = sub_02001504(param0, 2); + ListMenu_GetListAndCursorPos(param0, &v0, &v1); + v2 = ListMenu_GetAttribute(param0, 2); if (!param2) { Sound_PlayEffect(1500); @@ -793,33 +788,33 @@ static void sub_02072C98(UnkStruct_02072334 *param0, u8 param1, u8 param2) }; v1 = NELEMS(Unk_020F0524); - param0->unk_164 = sub_02013A04(v1, param0->unk_00); + param0->unk_164 = StringList_New(v1, param0->unk_00); Window_AddFromTemplate(param0->unk_170, &(param0->unk_174), &v2); Window_FillTilemap(¶m0->unk_174, ((15 << 4) | 15)); for (v0 = 0; v0 < v1; v0++) { - sub_02013A4C(param0->unk_164, param0->unk_10C, Unk_020F0524[v0].unk_00, Unk_020F0524[v0].unk_04); + StringList_AddFromMessageBank(param0->unk_164, param0->unk_10C, Unk_020F0524[v0].unk_00, Unk_020F0524[v0].unk_04); } - MI_CpuCopy8((void *)&Unk_020F0504, (void *)&(param0->unk_140), sizeof(UnkStruct_ov84_02240FA8)); + MI_CpuCopy8((void *)&Unk_020F0504, (void *)&(param0->unk_140), sizeof(ListMenuTemplate)); - param0->unk_140.unk_0C = &(param0->unk_174); - param0->unk_140.unk_00 = param0->unk_164; - param0->unk_140.unk_1C = (void *)param0; - param0->unk_140.unk_10 = v1; - param0->unk_140.unk_12 = 4; - param0->unk_140.unk_1A_7 = 0; - param0->unk_140.unk_04 = sub_02072DA4; - param0->unk_160 = sub_0200112C(&(param0->unk_140), param1, param2, param0->unk_00); + param0->unk_140.window = &(param0->unk_174); + param0->unk_140.choices = param0->unk_164; + param0->unk_140.tmp = (void *)param0; + param0->unk_140.count = v1; + param0->unk_140.maxDisplay = 4; + param0->unk_140.pagerMode = PAGER_MODE_NONE; + param0->unk_140.cursorCallback = sub_02072DA4; + param0->unk_160 = ListMenu_New(&(param0->unk_140), param1, param2, param0->unk_00); - Window_Show(¶m0->unk_174, 0, (1024 - (18 + 12) - 9), 11); + Window_DrawStandardFrame(¶m0->unk_174, 0, (1024 - (18 + 12) - 9), 11); Bg_ScheduleTilemapTransfer(param0->unk_170, 3); param0->unk_13B_0 = 1; } -static void sub_02072DA4(BmpList *param0, u32 param1, u8 param2) +static void sub_02072DA4(ListMenu *param0, u32 param1, u8 param2) { if (!param2) { Sound_PlayEffect(1500); @@ -830,15 +825,15 @@ static void sub_02072DB8(UnkStruct_02072334 *param0) { u16 v0, v1; - sub_02001384(param0->unk_160, &v0, &v1); - sub_02013A3C(param0->unk_164); + ListMenu_Free(param0->unk_160, &v0, &v1); + StringList_Free(param0->unk_164); Window_ClearAndCopyToVRAM(&(param0->unk_194)); - Window_Clear(&(param0->unk_194), 0); + Window_EraseStandardFrame(&(param0->unk_194), 0); Window_Remove(&(param0->unk_194)); Window_ClearAndCopyToVRAM(&(param0->unk_174)); - Window_Clear(&(param0->unk_174), 0); + Window_EraseStandardFrame(&(param0->unk_174), 0); Window_Remove(&(param0->unk_174)); param0->unk_13C = v0; @@ -857,9 +852,9 @@ static void sub_02072E4C(UnkStruct_02072334 *param0) u16 v0, v1; Window_ClearAndCopyToVRAM(&(param0->unk_174)); - Window_Clear(&(param0->unk_174), 0); - sub_02001384(param0->unk_160, &v0, &v1); - sub_02013A3C(param0->unk_164); + Window_EraseStandardFrame(&(param0->unk_174), 0); + ListMenu_Free(param0->unk_160, &v0, &v1); + StringList_Free(param0->unk_164); Window_Remove(&(param0->unk_174)); sub_02073398(param0); Bg_ScheduleTilemapTransfer(param0->unk_170, 3); @@ -1053,8 +1048,8 @@ static void sub_020731F4(UnkStruct_02072334 *param0) { param0->unk_170 = sub_0203D170(param0->fieldSystem); - sub_0200DD0C(param0->unk_170, 3, (1024 - (18 + 12)), 10, param0->unk_14, param0->unk_00); - sub_0200DAA4(param0->unk_170, 3, (1024 - (18 + 12) - 9), 11, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_170, 3, (1024 - (18 + 12)), 10, param0->unk_14, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_170, 3, (1024 - (18 + 12) - 9), 11, 0, param0->unk_00); Font_LoadTextPalette(0, 13 * 32, param0->unk_00); Font_LoadScreenIndicatorsPalette(0, 12 * 32, param0->unk_00); @@ -1077,7 +1072,7 @@ static void sub_020732C4(UnkStruct_02072334 *param0, int param1, u8 param2, u8 p Strbuf *v0; if (param4) { - sub_0200E060(¶m0->unk_184, 1, (1024 - (18 + 12)), 10); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_184, 1, (1024 - (18 + 12)), 10); } Window_FillRectWithColor(¶m0->unk_184, ((15 << 4) | 15), 0, 0, 27 * 8, 4 * 8); @@ -1101,7 +1096,7 @@ static void sub_020732C4(UnkStruct_02072334 *param0, int param1, u8 param2, u8 p static void sub_02073398(UnkStruct_02072334 *param0) { - sub_0200E084(¶m0->unk_184, 1); + Window_EraseMessageBox(¶m0->unk_184, 1); Window_ClearAndCopyToVRAM(¶m0->unk_184); } @@ -1130,12 +1125,12 @@ static void sub_020733E0(UnkStruct_02072334 *param0) 0x355 }; - param0->unk_168 = sub_02002100(param0->unk_170, &v0, (1024 - (18 + 12) - 9), 11, param0->unk_00); + param0->unk_168 = Menu_MakeYesNoChoice(param0->unk_170, &v0, (1024 - (18 + 12) - 9), 11, param0->unk_00); } static int sub_0207340C(UnkStruct_02072334 *param0) { - switch (sub_02002114(param0->unk_168, param0->unk_00)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_168, param0->unk_00)) { case 0: return 1; case 0xfffffffe: @@ -1149,11 +1144,11 @@ static int sub_02073438(UnkStruct_02072334 *param0, int param1) { switch (param0->unk_12) { case 0: - sub_0200F174(0, param1, param1, 0x0, 6, 1, param0->unk_00); + StartScreenTransition(0, param1, param1, 0x0, 6, 1, param0->unk_00); param0->unk_12++; break; case 1: - if (!ScreenWipe_Done()) { + if (!IsScreenTransitionDone()) { break; } @@ -1309,5 +1304,5 @@ void sub_020736D8(TaskManager *param0) v1->unk_00 = 0; v1->unk_04 = 0; - FieldTask_Start(fieldSystem->unk_10, sub_02073694, v1); + FieldTask_Start(fieldSystem->taskManager, sub_02073694, v1); } diff --git a/src/unk_0207A274.c b/src/unk_0207A274.c index a0d9b77d03..1e5fd45de0 100644 --- a/src/unk_0207A274.c +++ b/src/unk_0207A274.c @@ -21,7 +21,7 @@ u32 sub_0207A280(const PokedexData *param0) { BOOL v0; - v0 = Pokedex_IsNationalUnlocked(param0); + v0 = Pokedex_IsNationalDexObtained(param0); if (v0 == 1) { return 1; diff --git a/src/unk_0207AE68.c b/src/unk_0207AE68.c index 2e6b443c60..a4453bceb0 100644 --- a/src/unk_0207AE68.c +++ b/src/unk_0207AE68.c @@ -4,6 +4,8 @@ #include #include "consts/game_records.h" +#include "consts/items.h" +#include "consts/species.h" #include "struct_decls/pokedexdata_decl.h" #include "struct_decls/struct_0207AE68_decl.h" @@ -26,6 +28,7 @@ #include "gx_layers.h" #include "hardware_palette.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" @@ -35,15 +38,14 @@ #include "pokemon_summary_app.h" #include "poketch_data.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "sys_task.h" #include "sys_task_manager.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200762C.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_0201567C.h" #include "unk_02015F84.h" @@ -130,7 +132,7 @@ UnkStruct_0207AE68 *sub_0207AE68(Party *param0, Pokemon *param1, int param2, Opt sub_0207C1CC(v0, v0->unk_00); Window_Add(v0->unk_00, v0->unk_04, 1, 2, 0x13, 27, 4, 11, ((18 + 12) + 1)); Window_FillTilemap(v0->unk_04, 0xff); - sub_0200E060(v0->unk_04, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(v0->unk_04, 0, 1, 10); v0->unk_18 = sub_0200762C(param11); v0->unk_44 = sub_02015F84(param11, 1, 0); @@ -394,7 +396,7 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) break; case 11: if ((sub_0200598C() == 0) && (sub_020160F4(param0->unk_44, 0) == 1) && (sub_02007C24(param0->unk_1C[1]) == 0)) { - Pokemon_SetValue(param0->unk_28, 5, (u8 *)¶m0->unk_62); + Pokemon_SetValue(param0->unk_28, MON_DATA_SPECIES, (u8 *)¶m0->unk_62); Pokemon_CalcAbility(param0->unk_28); Pokemon_CalcLevelAndStats(param0->unk_28); StringTemplate_SetNickname(param0->unk_0C, 0, Pokemon_GetBoxPokemon(param0->unk_28)); @@ -413,7 +415,7 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) PoketchData_PokemonHistoryEnqueue(param0->poketchData, Pokemon_GetBoxPokemon(param0->unk_28)); if (Pokemon_GetValue(param0->unk_28, MON_DATA_HAS_NICKNAME, NULL) == 0) { - Pokemon_SetValue(param0->unk_28, 179, NULL); + Pokemon_SetValue(param0->unk_28, MON_DATA_SPECIES_NAME, NULL); } param0->unk_64++; @@ -474,11 +476,11 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) } break; case 20: - param0->unk_40 = sub_02002100(param0->unk_00, &Unk_020F0A30, 1, 8, param0->unk_5C); + param0->unk_40 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_020F0A30, 1, 8, param0->unk_5C); param0->unk_64++; break; case 21: - switch (sub_02002114(param0->unk_40, param0->unk_5C)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_40, param0->unk_5C)) { case 0: param0->unk_64 = 22; PaletteData_StartFade(param0->unk_14, (0x1 | 0x2 | 0x4 | 0x8), 0xffff, 1, 0, 16, 0x0); @@ -513,7 +515,7 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) if (OverlayManager_Exec(param0->unk_38)) { OverlayManager_Free(param0->unk_38); sub_0207C1CC(param0, param0->unk_00); - sub_0200E060(param0->unk_04, 0, 1, 10); + Window_DrawMessageBoxWithScrollCursor(param0->unk_04, 0, 1, 10); sub_02007DEC(param0->unk_1C[0], 6, 0); sub_02007DEC(param0->unk_1C[1], 6, 0); sub_020089A0(param0->unk_1C[0]); @@ -544,11 +546,11 @@ static void sub_0207B180(UnkStruct_0207AE68 *param0) param0->unk_64++; break; case 34: - param0->unk_40 = sub_02002100(param0->unk_00, &Unk_020F0A30, 1, 8, param0->unk_5C); + param0->unk_40 = Menu_MakeYesNoChoice(param0->unk_00, &Unk_020F0A30, 1, 8, param0->unk_5C); param0->unk_64++; break; case 35: - switch (sub_02002114(param0->unk_40, param0->unk_5C)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_40, param0->unk_5C)) { case 0: StringTemplate_SetNickname(param0->unk_0C, 0, Pokemon_GetBoxPokemon(param0->unk_28)); StringTemplate_SetMoveName(param0->unk_0C, 1, param0->unk_6C); @@ -686,7 +688,7 @@ static void sub_0207C028(UnkStruct_0207AE68 *param0) switch (param0->unk_78) { case 13: case 14: - if (Bag_GetItemQuantity(param0->unk_4C, 4, param0->unk_5C) && (Party_GetCurrentCount(param0->unk_24) < 6)) { + if (Bag_GetItemQuantity(param0->unk_4C, ITEM_POKE_BALL, param0->unk_5C) && (Party_GetCurrentCount(param0->unk_24) < 6)) { { Pokemon *v1; int v2; @@ -696,44 +698,44 @@ static void sub_0207C028(UnkStruct_0207AE68 *param0) v1 = Pokemon_New(param0->unk_5C); Pokemon_Copy(param0->unk_28, v1); - v2 = 292; - Pokemon_SetValue(v1, 5, &v2); + v2 = SPECIES_SHEDINJA; + Pokemon_SetValue(v1, MON_DATA_SPECIES, &v2); - v2 = 4; - Pokemon_SetValue(v1, 155, &v2); + v2 = ITEM_POKE_BALL; + Pokemon_SetValue(v1, MON_DATA_POKEBALL, &v2); v2 = 0; - Pokemon_SetValue(v1, 6, &v2); - Pokemon_SetValue(v1, 11, &v2); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v2); + Pokemon_SetValue(v1, MON_DATA_MARKS, &v2); - for (v0 = 25; v0 < 53 + 1; v0++) { + for (v0 = MON_DATA_SINNOH_CHAMP_RIBBON; v0 < MON_DATA_SINNOH_RIBBON_DUMMY + 1; v0++) { Pokemon_SetValue(v1, v0, &v2); } - for (v0 = 78; v0 < 109 + 1; v0++) { + for (v0 = MON_DATA_HOENN_COOL_RIBBON; v0 < MON_DATA_HOENN_WORLD_RIBBON + 1; v0++) { Pokemon_SetValue(v1, v0, &v2); } - for (v0 = 123; v0 < 143 + 1; v0++) { + for (v0 = MON_DATA_SINNOH_SUPER_COOL_RIBBON; v0 < MON_DATA_CONTEST_RIBBON_DUMMY + 1; v0++) { Pokemon_SetValue(v1, v0, &v2); } - Pokemon_SetValue(v1, 179, NULL); - Pokemon_SetValue(v1, 77, &v2); - Pokemon_SetValue(v1, 160, &v2); + Pokemon_SetValue(v1, MON_DATA_SPECIES_NAME, NULL); + Pokemon_SetValue(v1, MON_DATA_HAS_NICKNAME, &v2); + Pokemon_SetValue(v1, MON_DATA_STATUS_CONDITION, &v2); v3 = sub_0202818C(param0->unk_5C); - Pokemon_SetValue(v1, 170, v3); + Pokemon_SetValue(v1, MON_DATA_170, v3); Heap_FreeToHeap(v3); - Pokemon_SetValue(v1, 162, &v2); + Pokemon_SetValue(v1, MON_DATA_MAIL_ID, &v2); MI_CpuClearFast(&v4, sizeof(UnkStruct_0202CA28)); - Pokemon_SetValue(v1, 171, (UnkStruct_0202CA28 *)&v4); + Pokemon_SetValue(v1, MON_DATA_171, (UnkStruct_0202CA28 *)&v4); Pokemon_CalcAbility(v1); v0 = Pokemon_GetGender(v1); - Pokemon_SetValue(v1, 111, &v0); + Pokemon_SetValue(v1, MON_DATA_GENDER, &v0); Pokemon_CalcLevelAndStats(v1); Party_AddPokemon(param0->unk_24, v1); @@ -742,7 +744,7 @@ static void sub_0207C028(UnkStruct_0207AE68 *param0) GameRecords_IncrementTrainerScore(param0->records, TRAINER_SCORE_EVENT_CAUGHT_SPECIES); PoketchData_PokemonHistoryEnqueue(param0->poketchData, Pokemon_GetBoxPokemon(v1)); Heap_FreeToHeap(v1); - Bag_TryRemoveItem(param0->unk_4C, 4, 1, param0->unk_5C); + Bag_TryRemoveItem(param0->unk_4C, ITEM_POKE_BALL, 1, param0->unk_5C); } } break; @@ -750,7 +752,7 @@ static void sub_0207C028(UnkStruct_0207AE68 *param0) case 18: case 19: v0 = 0; - Pokemon_SetValue(param0->unk_28, 6, &v0); + Pokemon_SetValue(param0->unk_28, MON_DATA_HELD_ITEM, &v0); break; } } @@ -885,14 +887,14 @@ static void sub_0207C1CC(UnkStruct_0207AE68 *param0, BgConfig *param1) v4 = Options_Frame(param0->unk_2C); - sub_0200E218(param1, 1, 1, 10, v4, param0->unk_5C); + ReplaceTransparentTiles(param1, 1, 1, 10, v4, param0->unk_5C); Graphics_LoadTilesToBgLayer(v5, v6, param1, v9, 0, 0, 1, param0->unk_5C); Graphics_LoadTilemapToBgLayer(v5, v7, param1, v9, 0, 0, 1, param0->unk_5C); PaletteData_LoadBufferFromFileStart(param0->unk_14, v5, v8, param0->unk_5C, 0, 0x20 * 2, 0); - PaletteData_LoadBufferFromFileStart(param0->unk_14, 38, sub_0200DD08(v4), param0->unk_5C, 0, 0x20, 10 * 0x10); + PaletteData_LoadBufferFromFileStart(param0->unk_14, 38, GetMessageBoxPaletteNARCMember(v4), param0->unk_5C, 0, 0x20, 10 * 0x10); PaletteData_LoadBufferFromFileStart(param0->unk_14, 14, 7, param0->unk_5C, 0, 0x20, 0xb * 0x10); - Window_SetFrame(param0->unk_00, 2, 1, 0, param0->unk_5C); - PaletteData_LoadBufferFromFileStart(param0->unk_14, 38, Window_FramePalette(), param0->unk_5C, 0, 0x20, 8 * 0x10); + LoadStandardWindowTiles(param0->unk_00, 2, 1, 0, param0->unk_5C); + PaletteData_LoadBufferFromFileStart(param0->unk_14, 38, GetStandardWindowPaletteNARCMember(), param0->unk_5C, 0, 0x20, 8 * 0x10); } { @@ -943,7 +945,7 @@ static void sub_0207C498(UnkStruct_0207AE68 *param0) v1 = Pokemon_New(param0->unk_5C); Pokemon_Copy(param0->unk_28, v1); - Pokemon_SetValue(v1, 5, (u8 *)¶m0->unk_62); + Pokemon_SetValue(v1, MON_DATA_SPECIES, (u8 *)¶m0->unk_62); Pokemon_CalcLevelAndStats(v1); Pokemon_BuildArchivedSprite(&v0, v1, 2); Heap_FreeToHeap(v1); diff --git a/src/unk_0207E0B8.c b/src/unk_0207E0B8.c index 7ce9ae3251..9cf735adbf 100644 --- a/src/unk_0207E0B8.c +++ b/src/unk_0207E0B8.c @@ -3,6 +3,8 @@ #include #include +#include "constants/items.h" + #include "struct_defs/struct_0207C690.h" #include "struct_defs/struct_0207F248.h" #include "struct_defs/struct_02099F80.h" @@ -24,24 +26,24 @@ #include "heap.h" #include "item.h" #include "journal.h" +#include "menu.h" #include "message.h" #include "narc.h" #include "overlay_manager.h" #include "party.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" #include "touch_screen.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" #include "unk_0200C440.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" -#include "unk_02013A04.h" #include "unk_02017728.h" #include "unk_0201DBEC.h" #include "unk_0201E010.h" @@ -261,7 +263,7 @@ static int sub_0207E0B8(OverlayManager *param0, int *param1) v1 = NARC_ctor(NARC_INDEX_GRAPHIC__PL_PLIST_GRA, 12); v0 = sub_0207ECC0(param0); - sub_0200F174(1, 3, 3, 0x0, 6, 1, 12); + StartScreenTransition(1, 3, 3, 0x0, 6, 1, 12); sub_0207EDC0(v0); sub_0207E8C0(); sub_0207E918(v0->unk_00); @@ -310,7 +312,7 @@ static int sub_0207E0B8(OverlayManager *param0, int *param1) } SetMainCallback(sub_0207E898, v0); - sub_020397E4(); + DrawWifiConnectionIcon(); NARC_dtor(v1); return 1; @@ -437,7 +439,7 @@ static int sub_0207E2A8(OverlayManager *param0, int *param1) *param1 = 33; break; case 33: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { v0->unk_5A4->unk_22 = v0->unk_B11; return 1; } @@ -454,7 +456,7 @@ static int sub_0207E2A8(OverlayManager *param0, int *param1) static int sub_0207E490(GameWindowLayout *param0) { - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { if ((param0->unk_5A4->unk_20 == 5) || (param0->unk_5A4->unk_20 == 16)) { if (sub_020857A8(param0->unk_5A4->unk_24) == 1) { param0->unk_B0E = 0; @@ -548,17 +550,17 @@ static int sub_0207E5F4(GameWindowLayout *param0) static int sub_0207E634(GameWindowLayout *param0) { - u32 v0 = sub_02001BE0(param0->unk_700); + u32 v0 = Menu_ProcessInput(param0->unk_700); switch (v0) { case 0xffffffff: break; case 0xfffffffe: - sub_0200E084(¶m0->unk_04[33], 1); - Window_Clear(¶m0->unk_04[35], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); + Window_EraseStandardFrame(¶m0->unk_04[35], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_04[35]); - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); sub_020826E0(param0, 29, 1); sub_0200D414(param0->unk_5B0[6], 0); return 1; @@ -603,7 +605,7 @@ static int sub_0207E708(GameWindowLayout *param0) static int sub_0207E714(GameWindowLayout *param0) { - switch (sub_02002114(param0->unk_700, 12)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_700, 12)) { case 0: return param0->unk_B04.unk_00(param0); case 0xfffffffe: @@ -647,7 +649,7 @@ static int sub_0207E7E0(OverlayManager *param0, int *param1) sub_02081B90(v0); sub_0207EA24(v0->unk_00); sub_0201E530(); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); for (v1 = 0; v1 < 6; v1++) { Strbuf_Free(v0->unk_704[v1].unk_00); @@ -680,7 +682,7 @@ static void sub_0207E898(void *param0) Bg_RunScheduledUpdates(v0->unk_00); sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } @@ -926,8 +928,8 @@ static void sub_0207EB6C(GameWindowLayout *param0, NARC *param1) } Font_LoadScreenIndicatorsPalette(0, 13 * 32, 12); - sub_0200DAA4(param0->unk_00, 0, 1, 14, 0, 12); - sub_0200DD0C(param0->unk_00, 0, (1 + 9), 15, Options_Frame(param0->unk_5A4->unk_0C), 12); + LoadStandardWindowGraphics(param0->unk_00, 0, 1, 14, 0, 12); + LoadMessageBoxGraphics(param0->unk_00, 0, (1 + 9), 15, Options_Frame(param0->unk_5A4->unk_0C), 12); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 3, param0->unk_00, 4, 0, 0, 0, 12); Graphics_LoadPaletteFromOpenNARC(param1, 4, 4, 0x20, 0x20, 12); Graphics_LoadTilesToBgLayerFromOpenNARC(param1, 12, param0->unk_00, 5, 0, 0, 0, 12); @@ -1689,7 +1691,7 @@ static void sub_0207FFC8(GameWindowLayout *param0) u8 *v0; u8 v1; - sub_0200E084(¶m0->unk_04[32], 1); + Window_EraseMessageBox(¶m0->unk_04[32], 1); v0 = Heap_AllocFromHeap(12, 8); switch (param0->unk_5A4->unk_20) { @@ -2316,13 +2318,13 @@ static int GetValidWindowLayout(GameWindowLayout *param0) static u8 HandleWindowInputEvent(GameWindowLayout *param0, int *param1) { - u32 v0 = sub_02001BE0(param0->unk_700); + u32 v0 = Menu_ProcessInput(param0->unk_700); switch (v0) { case 0xffffffff: break; case 0xfffffffe: - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); sub_0208337C(param0); if ((param0->unk_5A4->unk_20 == 2) || (param0->unk_5A4->unk_20 == 17) || (param0->unk_5A4->unk_20 == 23) || (param0->unk_5A4->unk_20 == 22)) { @@ -2426,7 +2428,7 @@ static int ProcessWindowInput(GameWindowLayout *param0) case 1: if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(1500); - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_0200D414(param0->unk_5B0[6], 0); sub_020826E0(param0, 36, 1); param0->unk_B14[1] = 0; @@ -2466,7 +2468,7 @@ static int ProcessWindowInput(GameWindowLayout *param0) case 4: if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(1500); - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_0200D414(param0->unk_5B0[6], 0); sub_02083B88(param0); return 1; @@ -2512,7 +2514,7 @@ static BOOL UpdatePokemonStatus(GameWindowLayout *param0, u8 slot, s8 param2) mon = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, slot); v1 = param0->unk_704[slot].unk_06; - Pokemon_SetValue(mon, 163, &v1); + Pokemon_SetValue(mon, MON_DATA_CURRENT_HP, &v1); return 1; } @@ -2684,7 +2686,7 @@ static int ProcessItemApplication(GameWindowLayout *param0) } } - sub_0200E060(v1, 1, (1 + 9), 15); + Window_DrawMessageBoxWithScrollCursor(v1, 1, (1 + 9), 15); Window_FillTilemap(v1, 15); sub_0208274C(param0); @@ -2699,7 +2701,7 @@ static int UpdatePokemonWithItem(GameWindowLayout *param0, Pokemon *param1, int fieldSystem = param0->unk_5A4->unk_1C; Bag_TryRemoveItem(param0->unk_5A4->unk_04, param0->unk_5A4->unk_24, 1, 12); - Pokemon_SetValue(param1, 6, &v0); + Pokemon_SetValue(param1, MON_DATA_HELD_ITEM, &v0); Pokemon_SetArceusForm(param1); if ((fieldSystem == NULL) || (fieldSystem->location->mapId < 573) || (fieldSystem->location->mapId > 583)) { @@ -2711,7 +2713,7 @@ static int UpdatePokemonWithItem(GameWindowLayout *param0, Pokemon *param1, int param0->unk_704[param0->unk_B11].unk_0C = param0->unk_5A4->unk_24; sub_02083040(param0, param0->unk_B11, param0->unk_704[param0->unk_B11].unk_0C); - if ((v0 == 112) && ((*param2) != -1)) { + if ((v0 == ITEM_GRISEOUS_ORB) && ((*param2) != -1)) { return 12; } @@ -2721,7 +2723,7 @@ static int UpdatePokemonWithItem(GameWindowLayout *param0, Pokemon *param1, int static void SwapPokemonItem(GameWindowLayout *param0, Pokemon *param1, u32 param2, u32 param3) { Bag_TryAddItem(param0->unk_5A4->unk_04, (u16)param2, 1, 12); - Pokemon_SetValue(param1, 6, ¶m3); + Pokemon_SetValue(param1, MON_DATA_HELD_ITEM, ¶m3); Pokemon_SetArceusForm(param1); Pokemon_SetGiratinaForm(param1); param0->unk_704[param0->unk_B11].unk_0C = (u16)param3; @@ -2743,7 +2745,7 @@ static int ProcessMessageResult(GameWindowLayout *param0) { if (Text_IsPrinterActive(param0->unk_B10) == 0) { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); LoadOverlay118(param0); return 13; } @@ -2777,7 +2779,7 @@ static int ProcessPokemonItemSwap(GameWindowLayout *param0) { int v0, v1; - switch (sub_02002114(param0->unk_700, 12)) { + switch (Menu_ProcessInputAndHandleExit(param0->unk_700, 12)) { case 0: { Pokemon *v2; Window *v3; @@ -2828,7 +2830,7 @@ static int ProcessPokemonItemSwap(GameWindowLayout *param0) static int ResetWindowOnInput(GameWindowLayout *param0) { if (param0->unk_5A4->unk_20 == 10) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_020826E0(param0, 29, 1); sub_0200D414(param0->unk_5B0[6], 0); param0->unk_5A4->unk_20 = 0; @@ -2870,7 +2872,7 @@ static int UpdatePokemonFormWithItem(GameWindowLayout *param0) StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, param0->unk_6A8); } - sub_0200E060(v1, 1, (1 + 9), 15); + Window_DrawMessageBoxWithScrollCursor(v1, 1, (1 + 9), 15); Window_FillTilemap(v1, 15); sub_0208274C(param0); diff --git a/src/unk_020819DC.c b/src/unk_020819DC.c index d1b70578f9..8f63b71578 100644 --- a/src/unk_020819DC.c +++ b/src/unk_020819DC.c @@ -4,23 +4,22 @@ #include #include "struct_defs/struct_0207F248.h" -#include "struct_defs/struct_02081CF4.h" #include "bg_window.h" #include "font.h" #include "game_options.h" +#include "menu.h" #include "message.h" #include "party.h" #include "pokemon.h" #include "render_text.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0207E0B8.h" #include "unk_02083370.h" #include "unk_02084B70.h" @@ -195,39 +194,39 @@ void sub_02081CAC(GameWindowLayout *param0, u16 param1, u8 param2) void sub_02081CF4(GameWindowLayout *param0, const u8 *param1, u8 param2) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; u16 v1, v2; Window_Add(param0->unk_00, ¶m0->unk_254[0], 0, 19, 23 - param2 * 2, 12, param2 * 2, 0, (((((((((((((((((((((((((((((((1 + 9) + (18 + 12)) + 9 * 2) + 6 * 2) + 8 * 2) + 6 * 1) + 9 * 2) + 6 * 2) + 8 * 2) + 6 * 1) + 9 * 2) + 6 * 2) + 8 * 2) + 6 * 1) + 9 * 2) + 6 * 2) + 8 * 2) + 6 * 1) + 9 * 2) + 6 * 2) + 8 * 2) + 6 * 1) + 9 * 2) + 6 * 2) + 8 * 2) + 6 * 1) + 5 * 2) + 7 * 2) + 20 * 2) + 13 * 4) + 27 * 4)); - param0->unk_6FC = sub_02013A04(param2, 12); + param0->unk_6FC = StringList_New(param2, 12); v2 = 0; for (v1 = 0; v1 < param2; v1++) { if (param1[v1] >= 16) { - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[16 + v2], sub_02083370((u8)param1[v1])); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[16 + v2], sub_02083370((u8)param1[v1])); v2++; } else { - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[param1[v1]], sub_02083370((u8)param1[v1])); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[param1[v1]], sub_02083370((u8)param1[v1])); } } - v0.unk_00 = param0->unk_6FC; - v0.unk_04 = ¶m0->unk_254[0]; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = param2; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; + v0.choices = param0->unk_6FC; + v0.window = ¶m0->unk_254[0]; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = param2; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; if (param2 >= 4) { - v0.unk_0B_6 = 1; + v0.loopAround = TRUE; } else { - v0.unk_0B_6 = 0; + v0.loopAround = FALSE; } - Window_Show(¶m0->unk_254[0], 1, 1, 14); - param0->unk_700 = sub_02001B7C(&v0, 8, 0, 0, 12, PAD_BUTTON_B); + Window_DrawStandardFrame(¶m0->unk_254[0], 1, 1, 14); + param0->unk_700 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 12, PAD_BUTTON_B); } void sub_02081E08(GameWindowLayout *param0) @@ -569,7 +568,7 @@ void sub_020825B4(GameWindowLayout *param0, u8 param1) static void sub_02082680(GameWindowLayout *param0, Window *param1, u32 param2, u8 param3) { if (param3 == 1) { - sub_0200E060(param1, 1, (1 + 9), 15); + Window_DrawMessageBoxWithScrollCursor(param1, 1, (1 + 9), 15); } Window_FillTilemap(param1, 15); @@ -597,7 +596,7 @@ void sub_02082708(GameWindowLayout *param0, u32 param1, u8 param2) Window *v0 = ¶m0->unk_04[34]; if (param2 == 1) { - sub_0200E060(v0, 1, (1 + 9), 15); + Window_DrawMessageBoxWithScrollCursor(v0, 1, (1 + 9), 15); } Window_FillTilemap(v0, 15); @@ -639,7 +638,7 @@ static BOOL sub_0208279C(TextPrinterTemplate *param0, u16 param1) void sub_020827EC(GameWindowLayout *param0) { - param0->unk_700 = sub_02002100( + param0->unk_700 = Menu_MakeYesNoChoice( param0->unk_00, &Unk_020F1E98, 1, 14, 12); } @@ -751,7 +750,7 @@ void sub_020829DC(GameWindowLayout *param0) v3[5] = (u16)Pokemon_GetValue(v0, MON_DATA_SPEED, NULL); Window_Add(param0->unk_00, ¶m0->unk_254[0], 0, 1, 1, 14, 12, 0, 576); - Window_Show(¶m0->unk_254[0], 1, 1, 14); + Window_DrawStandardFrame(¶m0->unk_254[0], 1, 1, 14); Window_FillTilemap(¶m0->unk_254[0], 15); for (v2 = 0; v2 < 6; v2++) { @@ -800,6 +799,6 @@ void sub_02082B58(GameWindowLayout *param0) void sub_02082C10(GameWindowLayout *param0) { - Window_Clear(¶m0->unk_254[0], 0); + Window_EraseStandardFrame(¶m0->unk_254[0], 0); Window_Remove(¶m0->unk_254[0]); } diff --git a/src/unk_02082C2C.c b/src/unk_02082C2C.c index 4e7a681a38..fceb7bd1c3 100644 --- a/src/unk_02082C2C.c +++ b/src/unk_02082C2C.c @@ -32,7 +32,7 @@ void sub_02082C2C(GameWindowLayout *param0) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); - sub_0201DBEC(32, 12); + VRAMTransferManager_New(32, 12); param0->unk_5A8 = sub_0200C6E4(12); param0->unk_5AC = sub_0200C704(param0->unk_5A8); diff --git a/src/unk_02083370.c b/src/unk_02083370.c index 47a5a4c4ac..bdcea827f0 100644 --- a/src/unk_02083370.c +++ b/src/unk_02083370.c @@ -3,9 +3,10 @@ #include #include +#include "consts/items.h" + #include "struct_defs/struct_0200D0F4.h" #include "struct_defs/struct_0207F248.h" -#include "struct_defs/struct_02081CF4.h" #include "struct_defs/struct_020831B4.h" #include "struct_defs/struct_02083D1C.h" @@ -17,17 +18,18 @@ #include "bg_window.h" #include "cell_actor.h" #include "core_sys.h" +#include "font.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "party.h" #include "pokemon.h" +#include "render_window.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0207070C.h" #include "unk_0207E0B8.h" #include "unk_020819DC.h" @@ -116,45 +118,45 @@ u32 sub_02083370(u8 param0) void sub_0208337C(GameWindowLayout *param0) { - Window_Clear(¶m0->unk_254[0], 1); + Window_EraseStandardFrame(¶m0->unk_254[0], 1); Window_ClearAndScheduleCopyToVRAM(¶m0->unk_254[0]); - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); Window_Remove(¶m0->unk_254[0]); } static void sub_020833BC(GameWindowLayout *param0, int *param1) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; sub_0208337C(param0); sub_020826F4(param0, 38, 0); - param0->unk_6FC = sub_02013A04(3, 12); + param0->unk_6FC = StringList_New(3, 12); - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[3], sub_02083370(3)); - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[4], sub_02083370(4)); - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[9], sub_02083370(9)); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[3], sub_02083370(3)); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[4], sub_02083370(4)); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[9], sub_02083370(9)); - v0.unk_00 = param0->unk_6FC; - v0.unk_04 = ¶m0->unk_04[35]; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 3; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.choices = param0->unk_6FC; + v0.window = ¶m0->unk_04[35]; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 3; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; - Window_Show(¶m0->unk_04[35], 1, 1, 14); + Window_DrawStandardFrame(¶m0->unk_04[35], 1, 1, 14); - param0->unk_700 = sub_02001B7C(&v0, 8, 0, 0, 12, PAD_BUTTON_B); + param0->unk_700 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 12, PAD_BUTTON_B); *param1 = 15; } static void sub_0208347C(GameWindowLayout *param0, int *param1) { - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); param0->unk_5A4->unk_23 = 3; *param1 = 32; @@ -167,9 +169,9 @@ static void sub_020834B0(GameWindowLayout *param0, int *param1) int v2 = 17; FieldSystem *fieldSystem; - Window_Clear(¶m0->unk_04[35], 1); - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Window_EraseStandardFrame(¶m0->unk_04[35], 1); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); fieldSystem = param0->unk_5A4->unk_1C; @@ -184,13 +186,13 @@ static void sub_020834B0(GameWindowLayout *param0, int *param1) v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11); v4 = 0; - Pokemon_SetValue(v0, 6, &v4); + Pokemon_SetValue(v0, MON_DATA_HELD_ITEM, &v4); Pokemon_SetArceusForm(v0); if ((fieldSystem == NULL) || (fieldSystem->location->mapId < 573) || (fieldSystem->location->mapId > 583)) { v1 = Pokemon_SetGiratinaForm(v0); - if ((param0->unk_704[param0->unk_B11].unk_0C == 112) && (v1 == 0)) { + if ((param0->unk_704[param0->unk_B11].unk_0C == ITEM_GRISEOUS_ORB) && (v1 == 0)) { v2 = 18; } } @@ -207,7 +209,7 @@ static void sub_020834B0(GameWindowLayout *param0, int *param1) MessageLoader_GetStrbuf(param0->unk_69C, 83, param0->unk_6A4); } - sub_0200E060(¶m0->unk_04[34], 1, (1 + 9), 15); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[34], 1, (1 + 9), 15); Window_FillTilemap(¶m0->unk_04[34], 15); sub_0208274C(param0); @@ -218,7 +220,7 @@ int sub_02083658(GameWindowLayout *param0) { if (Text_IsPrinterActive(param0->unk_B10) == 0) { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_020826E0(param0, 29, 1); sub_0200D414(param0->unk_5B0[6], 0); return 1; @@ -232,7 +234,7 @@ int sub_020836A8(GameWindowLayout *param0) { if (Text_IsPrinterActive(param0->unk_B10) == 0) { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); LoadOverlay118(param0); return 19; } @@ -253,36 +255,36 @@ int sub_020836E4(GameWindowLayout *param0) static void sub_02083700(GameWindowLayout *param0, int *param1) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; sub_0208337C(param0); sub_020826F4(param0, 39, 0); - param0->unk_6FC = sub_02013A04(3, 12); + param0->unk_6FC = StringList_New(3, 12); - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[6], sub_02083370(6)); - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[7], sub_02083370(7)); - sub_02013A6C(param0->unk_6FC, param0->unk_6AC[9], sub_02083370(9)); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[6], sub_02083370(6)); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[7], sub_02083370(7)); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6AC[9], sub_02083370(9)); - v0.unk_00 = param0->unk_6FC; - v0.unk_04 = ¶m0->unk_04[35]; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 3; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; - v0.unk_0B_6 = 0; + v0.choices = param0->unk_6FC; + v0.window = ¶m0->unk_04[35]; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 3; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; + v0.loopAround = FALSE; - Window_Show(¶m0->unk_04[35], 1, 1, 14); + Window_DrawStandardFrame(¶m0->unk_04[35], 1, 1, 14); - param0->unk_700 = sub_02001B7C(&v0, 8, 0, 0, 12, PAD_BUTTON_B); + param0->unk_700 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 12, PAD_BUTTON_B); *param1 = 15; } static void sub_020837C0(GameWindowLayout *param0, int *param1) { - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); param0->unk_5A4->unk_23 = 7; *param1 = 32; @@ -290,9 +292,9 @@ static void sub_020837C0(GameWindowLayout *param0, int *param1) static void sub_020837F4(GameWindowLayout *param0, int *param1) { - Window_Clear(¶m0->unk_04[35], 1); - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Window_EraseStandardFrame(¶m0->unk_04[35], 1); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); sub_02082708(param0, 43, 1); param0->unk_B04.unk_00 = sub_0208384C; @@ -346,7 +348,7 @@ static int sub_020838F4(void *param0) v1 = Party_GetPokemonBySlotIndex(v0->unk_5A4->unk_00, v0->unk_B11); v2 = 0; - Pokemon_SetValue(v1, 6, &v2); + Pokemon_SetValue(v1, MON_DATA_HELD_ITEM, &v2); Pokemon_SetArceusForm(v1); Pokemon_SetGiratinaForm(v1); @@ -367,7 +369,7 @@ static int sub_02083990(void *param0) { GameWindowLayout *v0 = param0; - sub_0200E084(&v0->unk_04[34], 1); + Window_EraseMessageBox(&v0->unk_04[34], 1); sub_020826E0(v0, 29, 1); sub_0200D414(v0->unk_5B0[6], 0); @@ -377,7 +379,7 @@ static int sub_02083990(void *param0) int sub_020839BC(GameWindowLayout *param0) { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_020826E0(param0, 29, 1); sub_0200D414(param0->unk_5B0[6], 0); return 1; @@ -389,8 +391,8 @@ int sub_020839BC(GameWindowLayout *param0) static void sub_020839FC(GameWindowLayout *param0, int *param1) { if (param0->unk_704[param0->unk_B11].unk_12 == 0) { - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); param0->unk_5A4->unk_23 = 0; *param1 = 32; return; @@ -423,7 +425,7 @@ int sub_02083AA4(void *param0) { GameWindowLayout *v0 = param0; - sub_0200E084(&v0->unk_04[34], 1); + Window_EraseMessageBox(&v0->unk_04[34], 1); sub_020826E0(v0, 29, 1); sub_0200D414(v0->unk_5B0[6], 0); @@ -443,7 +445,7 @@ static void sub_02083AD0(GameWindowLayout *param0, int *param1) CellActor_SetAnim(param0->unk_5B0[7], sub_020805D0(param0->unk_5A4->unk_21, param0->unk_B0F_0) + 2); CellActor_SetDrawFlag(param0->unk_5B0[7], 1); sub_0207F8F8(param0, param0->unk_B0F_0); - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); sub_0208337C(param0); sub_020826E0(param0, 30, 1); @@ -714,7 +716,7 @@ static void sub_020844B0(GameWindowLayout *param0, int *param1) { u8 v0; - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); sub_0208337C(param0); for (v0 = 0; v0 < param0->unk_5A4->unk_32_4; v0++) { @@ -761,7 +763,7 @@ static void sub_020844B0(GameWindowLayout *param0, int *param1) int sub_020845A8(GameWindowLayout *param0) { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_020826E0(param0, 34, 1); sub_0200D414(param0->unk_5B0[6], 0); return 1; @@ -794,7 +796,7 @@ static void sub_020845E8(GameWindowLayout *param0, int *param1) sub_02082508(param0, v0); } - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); sub_0208337C(param0); sub_020826E0(param0, 29, 1); sub_0200D414(param0->unk_5B0[6], 0); @@ -806,8 +808,8 @@ static void sub_020846CC(GameWindowLayout *param0, int *param1) { param0->unk_5A4->unk_23 = 0; - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); *param1 = 32; } @@ -816,8 +818,8 @@ static void sub_020846FC(GameWindowLayout *param0, int *param1) { param0->unk_5A4->unk_23 = 0; - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); *param1 = 32; } @@ -826,8 +828,8 @@ static void sub_0208472C(GameWindowLayout *param0, int *param1) { param0->unk_5A4->unk_23 = 1; - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); *param1 = 32; } @@ -835,7 +837,7 @@ static void sub_0208472C(GameWindowLayout *param0, int *param1) static void sub_02084760(GameWindowLayout *param0, int *param1) { sub_0208337C(param0); - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); *param1 = sub_02084780(param0); } @@ -877,8 +879,8 @@ static void sub_02084808(GameWindowLayout *param0, int *param1) switch (v1) { case 0: - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); *param1 = 32; return; case 1: @@ -895,7 +897,7 @@ static void sub_02084808(GameWindowLayout *param0, int *param1) break; } - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); sub_0208337C(param0); sub_02082708(param0, v2, 1); @@ -1001,7 +1003,7 @@ static void sub_020849FC(GameWindowLayout *param0, int *param1) static int sub_02084A18(GameWindowLayout *param0) { - sub_0200E084(¶m0->unk_04[33], 1); + Window_EraseMessageBox(¶m0->unk_04[33], 1); sub_0208337C(param0); param0->unk_B14[0] = param0->unk_704[param0->unk_B11].unk_08 / 5; @@ -1032,7 +1034,7 @@ static int sub_02084A18(GameWindowLayout *param0) int sub_02084B34(GameWindowLayout *param0) { if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { - sub_0200E084(¶m0->unk_04[34], 1); + Window_EraseMessageBox(¶m0->unk_04[34], 1); sub_020826E0(param0, 29, 1); sub_0200D414(param0->unk_5B0[6], 0); return 1; diff --git a/src/unk_02084B70.c b/src/unk_02084B70.c index 755f8c8d89..88a2a5a398 100644 --- a/src/unk_02084B70.c +++ b/src/unk_02084B70.c @@ -4,28 +4,28 @@ #include #include "struct_defs/struct_0207F248.h" -#include "struct_defs/struct_02081CF4.h" #include "field/field_system.h" #include "bag.h" #include "bg_window.h" #include "core_sys.h" +#include "font.h" #include "heap.h" #include "item.h" #include "map_header.h" +#include "menu.h" #include "message.h" #include "move_table.h" #include "party.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "strbuf.h" +#include "string_list.h" #include "string_template.h" #include "text.h" -#include "unk_02001AF4.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" -#include "unk_02013A04.h" #include "unk_0207E0B8.h" #include "unk_020819DC.h" #include "unk_02082C2C.h" @@ -638,7 +638,7 @@ int sub_02085804(GameWindowLayout *param0) param0->unk_B11 = sub_020857C0(param0, param0->unk_B11 + 1); if (param0->unk_B11 != 0xff) { - sub_0200E084(¶m0->unk_04[34], 0); + Window_EraseMessageBox(¶m0->unk_04[34], 0); sub_0207F8F8(param0, v3); param0->unk_B0E = 1; } else { @@ -928,7 +928,7 @@ u8 sub_02086104(GameWindowLayout *param0, Pokemon *param1) u16 v0; u8 v1; - for (v1 = 0; v1 < 4; v1++) { + for (v1 = 0; v1 < LEARNED_MOVES_MAX; v1++) { v0 = (u16)Pokemon_GetValue(param1, MON_DATA_MOVE1 + v1, NULL); if (v0 == param0->unk_5A4->unk_26) { @@ -1134,13 +1134,13 @@ static void sub_02086590(GameWindowLayout *param0, Pokemon *param1, u32 param2) u32 v0; v0 = param0->unk_5A4->unk_26; - Pokemon_SetValue(param1, 54 + param2, &v0); + Pokemon_SetValue(param1, MON_DATA_MOVE1 + param2, &v0); v0 = 0; - Pokemon_SetValue(param1, 62 + param2, &v0); + Pokemon_SetValue(param1, MON_DATA_MOVE1_PP_UPS + param2, &v0); v0 = MoveTable_CalcMaxPP(param0->unk_5A4->unk_26, 0); - Pokemon_SetValue(param1, 58 + param2, &v0); + Pokemon_SetValue(param1, MON_DATA_MOVE1_CUR_PP + param2, &v0); if (param0->unk_5A4->unk_24 != 0) { if (Item_IsHMMove(param0->unk_5A4->unk_26) == 0) { @@ -1166,17 +1166,17 @@ static u8 sub_02086614(GameWindowLayout *param0, u8 param1) Strbuf_Free(v1); if (v2 == 0) { - sub_02013A6C(param0->unk_6FC, param0->unk_6A8, 0xfffffffd); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6A8, 0xfffffffd); return 0; } - sub_02013A6C(param0->unk_6FC, param0->unk_6A8, param1); + StringList_AddFromStrbuf(param0->unk_6FC, param0->unk_6A8, param1); return 1; } void sub_020866A0(GameWindowLayout *param0, u8 param1) { - UnkStruct_02081CF4 v0; + MenuTemplate v0; u8 v1; if (param1 == 0) { @@ -1185,50 +1185,50 @@ void sub_020866A0(GameWindowLayout *param0, u8 param1) sub_020826F4(param0, 40, 1); } - param0->unk_6FC = sub_02013A04(4, 12); + param0->unk_6FC = StringList_New(4, 12); v1 = sub_02086614(param0, 0); v1 += sub_02086614(param0, 1); v1 += sub_02086614(param0, 2); v1 += sub_02086614(param0, 3); - v0.unk_00 = param0->unk_6FC; - v0.unk_04 = ¶m0->unk_04[36]; - v0.unk_08 = 0; - v0.unk_09 = 1; - v0.unk_0A = 4; - v0.unk_0B_0 = 0; - v0.unk_0B_4 = 0; + v0.choices = param0->unk_6FC; + v0.window = ¶m0->unk_04[36]; + v0.fontID = FONT_SYSTEM; + v0.xSize = 1; + v0.ySize = 4; + v0.lineSpacing = 0; + v0.suppressCursor = FALSE; if (v1 == 4) { - v0.unk_0B_6 = 1; + v0.loopAround = TRUE; } else { - v0.unk_0B_6 = 0; + v0.loopAround = FALSE; } - Window_Show(¶m0->unk_04[36], 1, 1, 14); - param0->unk_700 = sub_02001B7C(&v0, 8, 0, 0, 12, PAD_BUTTON_B); + Window_DrawStandardFrame(¶m0->unk_04[36], 1, 1, 14); + param0->unk_700 = Menu_NewAndCopyToVRAM(&v0, 8, 0, 0, 12, PAD_BUTTON_B); } int sub_02086774(GameWindowLayout *param0) { - u32 v0 = sub_02001BE0(param0->unk_700); + u32 v0 = Menu_ProcessInput(param0->unk_700); switch (v0) { case 0xffffffff: break; case 0xfffffffe: - sub_0200E084(¶m0->unk_04[33], 1); - Window_Clear(¶m0->unk_04[36], 1); - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Window_EraseMessageBox(¶m0->unk_04[33], 1); + Window_EraseStandardFrame(¶m0->unk_04[36], 1); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); sub_020826E0(param0, 32, 1); return 4; default: - sub_0200E084(¶m0->unk_04[33], 1); - Window_Clear(¶m0->unk_04[36], 1); - sub_02001BC4(param0->unk_700, NULL); - sub_02013A3C(param0->unk_6FC); + Window_EraseMessageBox(¶m0->unk_04[33], 1); + Window_EraseStandardFrame(¶m0->unk_04[36], 1); + Menu_Free(param0->unk_700, NULL); + StringList_Free(param0->unk_6FC); if (sub_02096F14(param0->unk_5A4->unk_00, param0->unk_5A4->unk_24, param0->unk_B11, (u8)v0, sub_02086930(param0), 12) == 1) { Pokemon *v1 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11); @@ -1252,7 +1252,7 @@ int sub_02086774(GameWindowLayout *param0) void sub_020868B0(GameWindowLayout *param0) { - sub_0200E084(¶m0->unk_04[32], 1); + Window_EraseMessageBox(¶m0->unk_04[32], 1); if (param0->unk_704[param0->unk_B11].unk_0C == 0) { MessageLoader_GetStrbuf(param0->unk_69C, 127, param0->unk_6A4); diff --git a/src/unk_0208694C.c b/src/unk_0208694C.c index 0542eca49c..d61bc92c0a 100644 --- a/src/unk_0208694C.c +++ b/src/unk_0208694C.c @@ -25,6 +25,7 @@ #include "overlay_manager.h" #include "pokemon.h" #include "pokemon_icon.h" +#include "render_window.h" #include "sprite_resource.h" #include "strbuf.h" #include "string_template.h" @@ -36,7 +37,6 @@ #include "unk_020093B4.h" #include "unk_0200A328.h" #include "unk_0200A784.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02012744.h" #include "unk_0201567C.h" @@ -912,7 +912,7 @@ static int sub_0208694C(OverlayManager *param0, int *param1) sub_02087FC0(v0, param0, v1); sub_02088754(&v0->unk_41C[4], v0->unk_D8, v0->unk_158, v0->unk_15A, v0->unk_528, v0->unk_17C); sub_02004550(52, 0, 0); - sub_0200F174(0, 1, 1, 0x0, 16, 1, 18); + StartScreenTransition(0, 1, 1, 0x0, 16, 1, 18); sub_0208732C(1); { @@ -956,7 +956,7 @@ static int sub_02086B64(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { *param1 = 1; v0->unk_630 = 0; } @@ -981,7 +981,7 @@ static int sub_02086B64(OverlayManager *param0, int *param1) case 5: sub_02087544(v0, param0); Window_FillTilemap(&v0->unk_41C[9], 0xf0f); - sub_0200E060(&v0->unk_41C[9], 0, (32 * 8), 10); + Window_DrawMessageBoxWithScrollCursor(&v0->unk_41C[9], 0, (32 * 8), 10); v0->unk_4BC = Text_AddPrinterWithParams(&v0->unk_41C[9], FONT_MESSAGE, v0->unk_180, 0, 0, TEXT_SPEED_FAST, NULL); Window_CopyToVRAM(&v0->unk_41C[9]); v0->unk_4C0 = 6; @@ -998,7 +998,7 @@ static int sub_02086B64(OverlayManager *param0, int *param1) v0->unk_630++; if (v0->unk_630 > 30) { - sub_0200F174(2, 0, 0, 0x0, 16, 1, 18); + StartScreenTransition(2, 0, 0, 0x0, 16, 1, 18); *param1 = 3; } break; @@ -1009,7 +1009,7 @@ static int sub_02086B64(OverlayManager *param0, int *param1) sub_02088514(&v0->unk_38); break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { return 1; } break; @@ -1512,7 +1512,7 @@ static void sub_0208769C(UnkStruct_02087A10 *param0, NARC *param1) Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 6, v0, 1, 0, (32 * 14 * 2), 1, 18); Graphics_LoadTilemapToBgLayerFromOpenNARC(param1, 7, v0, 0, 0, (32 * 14 * 2), 1, 18); Font_LoadScreenIndicatorsPalette(0, 12 * 32, 18); - sub_0200DD0C(param0->unk_160, 4, (32 * 8), 10, Options_Frame(param0->unk_18), 18); + LoadMessageBoxGraphics(param0->unk_160, 4, (32 * 8), 10, Options_Frame(param0->unk_18), 18); Font_LoadScreenIndicatorsPalette(4, 12 * 32, 18); param0->unk_510 = Graphics_GetCharDataFromOpenNARC(param1, 16, 1, ¶m0->unk_514, 18); @@ -1804,7 +1804,7 @@ static void sub_02087D64(BgConfig *param0, Window *param1, int *param2, int para static void sub_02087F48(Window *param0, int param1, Strbuf *param2) { - sub_0200E060(param0, 0, (32 * 8), 10); + Window_DrawMessageBoxWithScrollCursor(param0, 0, (32 * 8), 10); Text_AddPrinterWithParams(param0, FONT_MESSAGE, param2, 0, 0, TEXT_SPEED_INSTANT, NULL); Window_CopyToVRAM(param0); } @@ -2296,7 +2296,7 @@ static int sub_02088898(UnkStruct_02087A10 *param0, u16 param1, int param2) if (param0->unk_14 == 0) { Sound_PlayEffect(1506); param0->unk_4F4[6]++; - sub_0200F174(2, 0, 0, 0x0, 16, 1, 18); + StartScreenTransition(2, 0, 0, 0x0, 16, 1, 18); return 3; } else { param0->unk_4C0 = 5; diff --git a/src/unk_020890F4.c b/src/unk_020890F4.c index 92d05fd45d..9a2b5171ac 100644 --- a/src/unk_020890F4.c +++ b/src/unk_020890F4.c @@ -352,7 +352,7 @@ static void sub_020895CC(void *param0) UnkStruct_02089688 *v0 = param0; sub_0201DCAC(); - sub_0200C800(); + OAMManager_ApplyAndResetBuffers(); PaletteData_CommitFadedBuffers(v0->unk_2C0.unk_10); Bg_RunScheduledUpdates(v0->unk_2C0.unk_0C); diff --git a/src/unk_02089604.c b/src/unk_02089604.c index 15d80ab143..f1a7826cd8 100644 --- a/src/unk_02089604.c +++ b/src/unk_02089604.c @@ -128,7 +128,7 @@ BOOL sub_02089820(UnkStruct_02089688 *param0) } sub_02089808(param0, 1); - sub_0200F174(0, 1, 1, 0x0, 6, 1, 101); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, 101); return 0; } @@ -137,11 +137,11 @@ BOOL sub_020898DC(UnkStruct_02089688 *param0) { switch (param0->unk_29C) { case 0: - sub_0200F174(0, 0, 0, 0x0, 6, 1, 101); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, 101); param0->unk_29C++; break; case 1: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_29C++; } break; @@ -156,7 +156,7 @@ BOOL sub_02089938(UnkStruct_02089688 *param0) { switch (param0->unk_29C) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_29C++; } break; diff --git a/src/unk_0208A3F4.c b/src/unk_0208A3F4.c index 1643154a9b..3e400aa39c 100644 --- a/src/unk_0208A3F4.c +++ b/src/unk_0208A3F4.c @@ -24,10 +24,10 @@ #include "message.h" #include "narc.h" #include "palette.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "unk_0200C6E4.h" -#include "unk_0200DA60.h" #include "unk_02012744.h" #include "unk_0201E86C.h" @@ -101,8 +101,8 @@ void sub_0208A490 (UnkStruct_02089688 * param0) { int v5 = Options_Frame(param0->unk_38C.unk_20); - sub_0200DD0C(v1, 4, 1, 10, v5, 101); - PaletteData_LoadBufferFromFileStart(v4, 38, sub_0200DD08(v5), 101, 1, 0x20, 11 * 16); + LoadMessageBoxGraphics(v1, 4, 1, 10, v5, 101); + PaletteData_LoadBufferFromFileStart(v4, 38, GetMessageBoxPaletteNARCMember(v5), 101, 1, 0x20, 11 * 16); PaletteData_LoadBufferFromFileStart(v4, 14, 7, 101, 1, 0x20, 12 * 16); } } @@ -748,7 +748,7 @@ void sub_0208B1C4(BgConfig *param0, Window *param1, int param2, int param3, int { Window_Init(param1); Window_Add(param0, param1, param2, param3, param4, param5, param6, 12, param7); - sub_0200E060(param1, 1, 1, 11); + Window_DrawMessageBoxWithScrollCursor(param1, 1, 1, 11); Window_FillTilemap(param1, 15); Window_CopyToVRAM(param1); sub_0208B230(param1, param8); diff --git a/src/unk_0208C098.c b/src/unk_0208C098.c index 96de17dea7..42c0bbb079 100644 --- a/src/unk_0208C098.c +++ b/src/unk_0208C098.c @@ -82,9 +82,9 @@ u8 HealthBar_Color(u16 curHP, u16 maxHP, u32 barSize) void sub_0208C120(u8 param0, u32 param1) { if (param0 == 0) { - sub_0200F174(0, 1, 1, 0x0, 6, 1, param1); + StartScreenTransition(0, 1, 1, 0x0, 6, 1, param1); } else { - sub_0200F174(0, 0, 0, 0x0, 6, 1, param1); + StartScreenTransition(0, 0, 0, 0x0, 6, 1, param1); } } diff --git a/src/unk_0208EA44.c b/src/unk_0208EA44.c index aac05b835c..a268840b88 100644 --- a/src/unk_0208EA44.c +++ b/src/unk_0208EA44.c @@ -131,7 +131,7 @@ void sub_0208EA44(PokemonSummaryApp *param0) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1); GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); - sub_0201DBEC(32, 19); + VRAMTransferManager_New(32, 19); param0->renderer = sub_0200C6E4(19); param0->gfxHandler = sub_0200C704(param0->renderer); diff --git a/src/unk_0208FCF8.c b/src/unk_0208FCF8.c index 70e9bb01c7..3035d6a75f 100644 --- a/src/unk_0208FCF8.c +++ b/src/unk_0208FCF8.c @@ -13,11 +13,11 @@ #include "move_table.h" #include "pokemon.h" #include "pokemon_summary_app.h" +#include "render_window.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "unk_0200C440.h" -#include "unk_0200DA60.h" #include "unk_0207A274.h" #include "unk_0208EA44.h" #include "unk_020923C0.h" @@ -1013,7 +1013,7 @@ void sub_02091610(PokemonSummaryApp *param0, u8 param1) v0 = ¶m0->extraWindows[2]; - sub_0200E060(v0, 1, (1024 - (18 + 12)), 13); + Window_DrawMessageBoxWithScrollCursor(v0, 1, (1024 - (18 + 12)), 13); Window_FillTilemap(v0, 15); MessageLoader_GetStrbuf(param0->msgLoader, v1, param0->strbuf); Text_AddPrinterWithParamsAndColor(v0, FONT_MESSAGE, param0->strbuf, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 15), NULL); diff --git a/src/unk_02092494.c b/src/unk_02092494.c index 1344937e35..a8650887a9 100644 --- a/src/unk_02092494.c +++ b/src/unk_02092494.c @@ -831,16 +831,16 @@ void UpdateBoxMonStatusAndTrainerInfo(BoxPokemon *boxMon, TrainerInfo *trainerIn int v0; v0 = BoxPokemon_GetValue(boxMon, MON_DATA_HATCH_LOCATION, NULL); - BoxPokemon_SetValue(boxMon, 152, &v0); + BoxPokemon_SetValue(boxMon, MON_DATA_MET_LOCATION, &v0); v0 = BoxPokemon_GetValue(boxMon, MON_DATA_HATCH_YEAR, NULL); - BoxPokemon_SetValue(boxMon, 146, &v0); + BoxPokemon_SetValue(boxMon, MON_DATA_MET_YEAR, &v0); v0 = BoxPokemon_GetValue(boxMon, MON_DATA_HATCH_MONTH, NULL); - BoxPokemon_SetValue(boxMon, 147, &v0); + BoxPokemon_SetValue(boxMon, MON_DATA_MET_MONTH, &v0); v0 = BoxPokemon_GetValue(boxMon, MON_DATA_HATCH_DAY, NULL); - BoxPokemon_SetValue(boxMon, 148, &v0); + BoxPokemon_SetValue(boxMon, MON_DATA_MET_DAY, &v0); } } @@ -856,9 +856,9 @@ static void AssignTrainerInfoToBoxPokemon(BoxPokemon *boxMon, TrainerInfo *train int v1 = TrainerInfo_Gender(trainerInfo); Strbuf *v2 = TrainerInfo_NameNewStrbuf(trainerInfo, heapID); - BoxPokemon_SetValue(boxMon, 7, &v0); - BoxPokemon_SetValue(boxMon, 157, &v1); - BoxPokemon_SetValue(boxMon, 145, v2); + BoxPokemon_SetValue(boxMon, MON_DATA_OT_ID, &v0); + BoxPokemon_SetValue(boxMon, MON_DATA_OT_GENDER, &v1); + BoxPokemon_SetValue(boxMon, MON_DATA_OTNAME_STRBUF, v2); Strbuf_Free(v2); } @@ -869,15 +869,15 @@ static void SetMetLocationForBoxPokemon(BoxPokemon *param0, int param1, int para GetCurrentDate(&v0); if (param2 == 0) { - BoxPokemon_SetValue(param0, 152, ¶m1); - BoxPokemon_SetValue(param0, 146, &v0.year); - BoxPokemon_SetValue(param0, 147, &v0.month); - BoxPokemon_SetValue(param0, 148, &v0.day); + BoxPokemon_SetValue(param0, MON_DATA_MET_LOCATION, ¶m1); + BoxPokemon_SetValue(param0, MON_DATA_MET_YEAR, &v0.year); + BoxPokemon_SetValue(param0, MON_DATA_MET_MONTH, &v0.month); + BoxPokemon_SetValue(param0, MON_DATA_MET_DAY, &v0.day); } else { - BoxPokemon_SetValue(param0, 153, ¶m1); - BoxPokemon_SetValue(param0, 149, &v0.year); - BoxPokemon_SetValue(param0, 150, &v0.month); - BoxPokemon_SetValue(param0, 151, &v0.day); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_LOCATION, ¶m1); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_YEAR, &v0.year); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_MONTH, &v0.month); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_DAY, &v0.day); } } @@ -886,26 +886,26 @@ static void ResetBoxPokemonEggStatus(BoxPokemon *param0, int param1) int v0 = 0; if (param1 == 0) { - BoxPokemon_SetValue(param0, 152, &v0); - BoxPokemon_SetValue(param0, 146, &v0); - BoxPokemon_SetValue(param0, 147, &v0); - BoxPokemon_SetValue(param0, 148, &v0); + BoxPokemon_SetValue(param0, MON_DATA_MET_LOCATION, &v0); + BoxPokemon_SetValue(param0, MON_DATA_MET_YEAR, &v0); + BoxPokemon_SetValue(param0, MON_DATA_MET_MONTH, &v0); + BoxPokemon_SetValue(param0, MON_DATA_MET_DAY, &v0); } else { - BoxPokemon_SetValue(param0, 153, &v0); - BoxPokemon_SetValue(param0, 149, &v0); - BoxPokemon_SetValue(param0, 150, &v0); - BoxPokemon_SetValue(param0, 151, &v0); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_LOCATION, &v0); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_YEAR, &v0); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_MONTH, &v0); + BoxPokemon_SetValue(param0, MON_DATA_HATCH_DAY, &v0); } } static void FinalizeBoxPokemonData(BoxPokemon *param0) { int v0 = BoxPokemon_GetValue(param0, MON_DATA_LEVEL, NULL); - BoxPokemon_SetValue(param0, 156, &v0); + BoxPokemon_SetValue(param0, MON_DATA_MET_LEVEL, &v0); } static void UpdateBoxPokemonAfterCheck(BoxPokemon *param0) { int v0 = 1; - BoxPokemon_SetValue(param0, 110, &v0); + BoxPokemon_SetValue(param0, MON_DATA_FATEFUL_ENCOUNTER, &v0); } diff --git a/src/unk_02094EDC.c b/src/unk_02094EDC.c index a7698dacb7..292512a5d5 100644 --- a/src/unk_02094EDC.c +++ b/src/unk_02094EDC.c @@ -622,11 +622,11 @@ void sub_02095380(const UnkStruct_ov6_02248BE8 *param0, Pokemon *param1, int par u32 v2; v2 = sub_02074128(param0->unk_14, param0->unk_20_12, 0); - Pokemon_InitWith(param1, param0->unk_14, 10, 32, 1, v2, 2, 0xf0f0f0f); + Pokemon_InitWith(param1, param0->unk_14, 10, 32, TRUE, v2, OTID_NOT_SHINY, 0xf0f0f0f); for (v0 = 0; v0 < 4; v0++) { v1 = param0->unk_0C[v0]; - Pokemon_SetValue(param1, 54 + v0, &v1); + Pokemon_SetValue(param1, MON_DATA_MOVE1 + v0, &v1); } { @@ -637,8 +637,8 @@ void sub_02095380(const UnkStruct_ov6_02248BE8 *param0, Pokemon *param1, int par v3 = MessageLoader_GetNewStrbuf(v5, param0->unk_16); v4 = MessageLoader_GetNewStrbuf(v5, param0->unk_18); - Pokemon_SetValue(param1, 119, v3); - Pokemon_SetValue(param1, 145, v4); + Pokemon_SetValue(param1, MON_DATA_NICKNAME_STRBUF, v3); + Pokemon_SetValue(param1, MON_DATA_OTNAME_STRBUF, v4); Strbuf_Free(v3); Strbuf_Free(v4); @@ -655,12 +655,12 @@ void sub_02095380(const UnkStruct_ov6_02248BE8 *param0, Pokemon *param1, int par v10 = param0->unk_1E; v11 = param0->unk_1F; - Pokemon_SetValue(param1, 19, &v6); - Pokemon_SetValue(param1, 20, &v7); - Pokemon_SetValue(param1, 21, &v8); - Pokemon_SetValue(param1, 22, &v9); - Pokemon_SetValue(param1, 23, &v10); - Pokemon_SetValue(param1, 24, &v11); + Pokemon_SetValue(param1, MON_DATA_COOL, &v6); + Pokemon_SetValue(param1, MON_DATA_BEAUTY, &v7); + Pokemon_SetValue(param1, MON_DATA_CUTE, &v8); + Pokemon_SetValue(param1, MON_DATA_SMART, &v9); + Pokemon_SetValue(param1, MON_DATA_TOUGH, &v10); + Pokemon_SetValue(param1, MON_DATA_SHEEN, &v11); } } @@ -1026,23 +1026,23 @@ u32 sub_02095A3C(int param0, int param1) switch (param1) { case 0: - v0 = 123 + param0; + v0 = MON_DATA_SINNOH_SUPER_COOL_RIBBON + param0; break; case 1: - v0 = 127 + param0; + v0 = MON_DATA_SINNOH_SUPER_BEAUTY_RIBBON + param0; break; case 2: - v0 = 131 + param0; + v0 = MON_DATA_SINNOH_SUPER_CUTE_RIBBON + param0; break; case 3: - v0 = 135 + param0; + v0 = MON_DATA_SINNOH_SUPER_SMART_RIBBON + param0; break; case 4: - v0 = 139 + param0; + v0 = MON_DATA_SINNOH_SUPER_TOUGH_RIBBON + param0; break; default: GF_ASSERT(0); - return 123; + return MON_DATA_SINNOH_SUPER_COOL_RIBBON; } return v0; diff --git a/src/unk_02096420.c b/src/unk_02096420.c index 1f97a65da4..8873197047 100644 --- a/src/unk_02096420.c +++ b/src/unk_02096420.c @@ -3,6 +3,8 @@ #include #include +#include "consts/species.h" + #include "struct_decls/struct_party_decl.h" #include "heap.h" @@ -126,7 +128,7 @@ u8 CheckItemEffectsOnPokemon(Pokemon *param0, u16 param1, u16 param2, u32 param3 v1[4] = Pokemon_GetValue(param0, MON_DATA_SPATK_EV, NULL); v1[5] = Pokemon_GetValue(param0, MON_DATA_SPDEF_EV, NULL); - if (Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL) != 292) { + if (Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL) != SPECIES_SHEDINJA) { if (Item_Get(v0, 39) != 0) { v1[6] = Item_Get(v0, 48); @@ -311,7 +313,7 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 } if (v1[0] != v1[1]) { - Pokemon_SetValue(param0, 160, &v1[1]); + Pokemon_SetValue(param0, MON_DATA_STATUS_CONDITION, &v1[1]); v2 = 1; } @@ -393,14 +395,14 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 v1[4] = Pokemon_GetValue(param0, MON_DATA_SPATK_EV, NULL); v1[5] = Pokemon_GetValue(param0, MON_DATA_SPDEF_EV, NULL); - if (Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL) != 292) { + if (Pokemon_GetValue(param0, MON_DATA_SPECIES, NULL) != SPECIES_SHEDINJA) { if (Item_Get(v0, 39) != 0) { v1[7] = Item_Get(v0, 48); v1[6] = CalculateEVUpdate(v1[0], (v1[1] + v1[2] + v1[3] + v1[4] + v1[5]), v1[7]); if (v1[6] != -1) { v1[0] = v1[6]; - Pokemon_SetValue(param0, 13, &v1[0]); + Pokemon_SetValue(param0, MON_DATA_HP_EV, &v1[0]); Pokemon_CalcLevelAndStats(param0); v2 = 1; } @@ -417,7 +419,7 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 if (v1[6] != -1) { v1[1] = v1[6]; - Pokemon_SetValue(param0, 14, &v1[1]); + Pokemon_SetValue(param0, MON_DATA_ATK_EV, &v1[1]); Pokemon_CalcLevelAndStats(param0); v2 = 1; } @@ -433,7 +435,7 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 if (v1[6] != -1) { v1[2] = v1[6]; - Pokemon_SetValue(param0, 15, &v1[2]); + Pokemon_SetValue(param0, MON_DATA_DEF_EV, &v1[2]); Pokemon_CalcLevelAndStats(param0); v2 = 1; } @@ -449,7 +451,7 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 if (v1[6] != -1) { v1[3] = v1[6]; - Pokemon_SetValue(param0, 16, &v1[3]); + Pokemon_SetValue(param0, MON_DATA_SPEED_EV, &v1[3]); Pokemon_CalcLevelAndStats(param0); v2 = 1; } @@ -465,7 +467,7 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 if (v1[6] != -1) { v1[4] = v1[6]; - Pokemon_SetValue(param0, 17, &v1[4]); + Pokemon_SetValue(param0, MON_DATA_SPATK_EV, &v1[4]); Pokemon_CalcLevelAndStats(param0); v2 = 1; } @@ -481,7 +483,7 @@ u8 ApplyItemEffectsToPokemon(Pokemon *param0, u16 param1, u16 param2, u16 param3 if (v1[6] != -1) { v1[5] = v1[6]; - Pokemon_SetValue(param0, 18, &v1[5]); + Pokemon_SetValue(param0, MON_DATA_SPDEF_EV, &v1[5]); Pokemon_CalcLevelAndStats(param0); v2 = 1; } @@ -580,7 +582,7 @@ static u8 UpdatePokemonMovePP(Pokemon *mon, u32 moveIDX, u32 pp) } } - Pokemon_SetValue(mon, 58 + moveIDX, &ppCurr); // set the pp of the move + Pokemon_SetValue(mon, MON_DATA_MOVE1_CUR_PP + moveIDX, &ppCurr); // set the pp of the move return 1; } @@ -617,8 +619,8 @@ static u8 IncreaseMovePPUps(Pokemon *param0, u32 param1, u32 param2) v1 = v1 + MoveTable_CalcMaxPP(v0, v2) - v3; - Pokemon_SetValue(param0, 62 + param1, &v2); - Pokemon_SetValue(param0, 58 + param1, &v1); + Pokemon_SetValue(param0, MON_DATA_MOVE1_PP_UPS + param1, &v2); + Pokemon_SetValue(param0, MON_DATA_MOVE1_CUR_PP + param1, &v1); return 1; } @@ -641,7 +643,7 @@ static void RestorePokemonHP(Pokemon *mon, u32 param1, u32 param2, u32 param3) param1 += param3; } - Pokemon_SetValue(mon, 163, ¶m1); + Pokemon_SetValue(mon, MON_DATA_CURRENT_HP, ¶m1); } static s32 CalculateEVUpdate(s32 param0, s32 param1, s32 param2) @@ -747,7 +749,7 @@ static u8 UpdatePokemonFriendship(Pokemon *param0, s32 param1, s32 param2, u16 p param2 = 0; } - Pokemon_SetValue(param0, 9, ¶m2); + Pokemon_SetValue(param0, MON_DATA_FRIENDSHIP, ¶m2); return 1; } diff --git a/src/unk_02097624.c b/src/unk_02097624.c index cae3c95bc7..fb394a3d2e 100644 --- a/src/unk_02097624.c +++ b/src/unk_02097624.c @@ -159,7 +159,7 @@ int sub_02097750(UnkStruct_02097728 *param0, Pokemon *param1) return 0; } - Pokemon_SetValue(param1, 170, param0->unk_14); + Pokemon_SetValue(param1, MON_DATA_170, param0->unk_14); return 1; } @@ -189,8 +189,8 @@ int sub_02097788(UnkStruct_02028430 *param0, Pokemon *param1, int param2) Pokemon_GetValue(param1, MON_DATA_170, v2); sub_02028480(param0, 0, v0, v2); sub_02028124(v2); - Pokemon_SetValue(param1, 170, v2); - Pokemon_SetValue(param1, 6, &v1); + Pokemon_SetValue(param1, MON_DATA_170, v2); + Pokemon_SetValue(param1, MON_DATA_HELD_ITEM, &v1); Heap_FreeToHeap(v2); return v0; @@ -209,8 +209,8 @@ int sub_020977E4(UnkStruct_02028430 *param0, u16 param1, Pokemon *param2, int pa v0 = Item_ForMailNumber(sub_02028314(v1)); - Pokemon_SetValue(param2, 170, v1); - Pokemon_SetValue(param2, 6, &v0); + Pokemon_SetValue(param2, MON_DATA_170, v1); + Pokemon_SetValue(param2, MON_DATA_HELD_ITEM, &v0); sub_02028470(param0, 0, param1); Heap_FreeToHeap(v1); diff --git a/src/unk_02097B18.c b/src/unk_02097B18.c index 4f552d7f44..e40821d04c 100644 --- a/src/unk_02097B18.c +++ b/src/unk_02097B18.c @@ -143,7 +143,7 @@ static int sub_02097B18(OverlayManager *param0, int *param1) } v0->unk_D4.unk_10 = BgConfig_New(53); - sub_0201DBEC(64, 53); + VRAMTransferManager_New(64, 53); v0->unk_D4.unk_14 = PaletteData_New(53); PaletteData_SetAutoTransparent(v0->unk_D4.unk_14, 1); PaletteData_AllocBuffer(v0->unk_D4.unk_14, 0, 0x200, 53); @@ -194,7 +194,7 @@ static int sub_02097D30(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { *param1 = 1; } break; @@ -210,7 +210,7 @@ static int sub_02097D30(OverlayManager *param0, int *param1) ov76_0223BF50(); } break; case 2: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } break; @@ -254,7 +254,7 @@ static int sub_02097D88(OverlayManager *param0, int *param1) sub_02015FB8(v0->unk_D4.unk_188); ov76_0223B8C4(v0); ov76_0223C424(&v0->unk_D4); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_020242C4(v0->unk_D4.unk_15C); ov76_0223EB54(53); NARC_dtor(v0->unk_42C); @@ -389,8 +389,8 @@ static BOOL sub_02097F38(TaskManager *param0) if (v7->unk_22 != 7) { v8 = sub_02097F00(v0->unk_08, v7->unk_22); - Pokemon_SetValue(v8, 162, (u8 *)&v13); - Pokemon_SetValue(v8, 171, sub_0202CA28(v1->unk_20, v13 - 1)); + Pokemon_SetValue(v8, MON_DATA_MAIL_ID, (u8 *)&v13); + Pokemon_SetValue(v8, MON_DATA_171, sub_0202CA28(v1->unk_20, v13 - 1)); v9 = sub_0202CA28(v1->unk_20, v13 - 1); v10 = sub_0202CA64(v9, 0); diff --git a/src/unk_02098218.c b/src/unk_02098218.c index 727a31ff5c..8621959f34 100644 --- a/src/unk_02098218.c +++ b/src/unk_02098218.c @@ -4,6 +4,7 @@ #include #include "consts/game_records.h" +#include "consts/species.h" #include "struct_decls/struct_020508D4_decl.h" #include "struct_defs/struct_0203E2FC.h" @@ -79,7 +80,7 @@ static int sub_02098218(OverlayManager *param0, int *param1) v1->unk_04.unk_3C = NARC_ctor(NARC_INDEX_POKETOOL__POKE_EDIT__PL_POKE_DATA, 71); v1->unk_04.unk_00 = BgConfig_New(71); - sub_0201DBEC(64, 71); + VRAMTransferManager_New(64, 71); v1->unk_04.unk_54 = sub_02015F84(71, 1, 0); v1->unk_04.unk_04 = PaletteData_New(71); @@ -111,7 +112,7 @@ static int sub_02098304(OverlayManager *param0, int *param1) switch (*param1) { case 0: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { (*param1)++; } @@ -122,7 +123,7 @@ static int sub_02098304(OverlayManager *param0, int *param1) PokeSprite_LoadCryDelay(v0->unk_04.unk_3C, &v0->unk_6C, v1, 1); - if (v1 == 490) { + if (v1 == SPECIES_MANAPHY) { v0->unk_5C = 1; } else { v0->unk_5C = 0; @@ -143,7 +144,7 @@ static int sub_02098304(OverlayManager *param0, int *param1) ov119_021D1004(); } break; default: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { return 1; } @@ -178,7 +179,7 @@ static int sub_02098388(OverlayManager *param0, int *param1) Bg_FreeTilemapBuffer(v0->unk_04.unk_00, 4); Heap_FreeToHeap(v0->unk_04.unk_00); - sub_0201DC3C(); + VRAMTransferManager_Destroy(); sub_02007B6C(v0->unk_04.unk_38); sub_02015FB8(v0->unk_04.unk_54); NARC_dtor(v0->unk_04.unk_3C); @@ -219,9 +220,9 @@ static BOOL sub_0209843C(TaskManager *param0) int v6 = 11; int v7 = 0; - Pokemon_SetValue(v2, 76, &v7); + Pokemon_SetValue(v2, MON_DATA_IS_EGG, &v7); sub_0209304C(v2, v3, v4, v5, v6); - Pokemon_SetValue(v2, 179, NULL); + Pokemon_SetValue(v2, MON_DATA_SPECIES_NAME, NULL); } { @@ -248,7 +249,7 @@ static BOOL sub_0209843C(TaskManager *param0) } break; case 4: if (v0->unk_08->unk_14 == 0) { - Pokemon_SetValue(v0->unk_0C.unk_00, 120, v0->unk_08->unk_18); + Pokemon_SetValue(v0->unk_0C.unk_00, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v0->unk_08->unk_18); { FieldSystem *fieldSystem = TaskManager_FieldSystem(param0); diff --git a/src/unk_020985E4.c b/src/unk_020985E4.c index 1531692a0b..3a8f8815b7 100644 --- a/src/unk_020985E4.c +++ b/src/unk_020985E4.c @@ -52,7 +52,7 @@ BOOL sub_0209862C(TaskManager *param0) ov5_021D1744(0); v1->unk_00++; case 1: - if (ScreenWipe_Done() == 0) { + if (IsScreenTransitionDone() == 0) { break; } diff --git a/src/unk_020989DC.c b/src/unk_020989DC.c index b6bf40ab25..3fd96d8723 100644 --- a/src/unk_020989DC.c +++ b/src/unk_020989DC.c @@ -537,6 +537,6 @@ void sub_02098EF8(Poffin *param0, Pokemon *param1) if (v3 < 255) { ++v3; - Pokemon_SetValue(param1, 9, &v3); + Pokemon_SetValue(param1, MON_DATA_FRIENDSHIP, &v3); } } diff --git a/src/unk_020997B8.c b/src/unk_020997B8.c index d5b66bd649..ce66835214 100644 --- a/src/unk_020997B8.c +++ b/src/unk_020997B8.c @@ -35,7 +35,7 @@ u16 *sub_020997D8(Pokemon *param0, u32 param1) v5 = (u8)Pokemon_GetValue(param0, MON_DATA_FORM, NULL); v4 = (u8)Pokemon_GetValue(param0, MON_DATA_LEVEL, NULL); - for (v7 = 0; v7 < 4; v7++) { + for (v7 = 0; v7 < LEARNED_MOVES_MAX; v7++) { v2[v7] = (u16)Pokemon_GetValue(param0, MON_DATA_MOVE1 + v7, NULL); } diff --git a/src/unk_020998EC.c b/src/unk_020998EC.c index 497a6c47a1..e3f0a36bf0 100644 --- a/src/unk_020998EC.c +++ b/src/unk_020998EC.c @@ -3236,7 +3236,7 @@ static u32 sub_02099980(UnkStruct_020998EC *param0, const u16 *param1, u32 param v0 = sub_0209755C(param0->unk_00); for (v1 = 0; v1 < param2; v1++) { - if (Pokedex_HasEncountered(v0, param1[v1])) { + if (Pokedex_HasSeenSpecies(v0, param1[v1])) { inline_02099980(param0, param1[v1]); *param3++ = param1[v1]; v2++; diff --git a/src/unk_02099DFC.c b/src/unk_02099DFC.c index 418b4d66f4..9d76a1f604 100644 --- a/src/unk_02099DFC.c +++ b/src/unk_02099DFC.c @@ -1,7 +1,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0203CC84.h" #include "struct_defs/struct_02099F80.h" @@ -10,16 +9,16 @@ #include "font.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "overlay_manager.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" #include "text.h" #include "unk_02000C88.h" -#include "unk_02001AF4.h" #include "unk_020041CC.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" @@ -34,7 +33,7 @@ typedef struct { BgConfig *unk_14; MessageLoader *unk_18; Window unk_1C; - UIControlData *unk_2C; + Menu *unk_2C; SaveData *unk_30; void *unk_34; } UnkStruct_02099DFC; @@ -122,22 +121,22 @@ int sub_02099E38(OverlayManager *param0, int *param1) sub_0209A098(v0); SetMainCallback(sub_02099F74, (void *)v0); GXLayers_TurnBothDispOn(); - sub_0200F174(0, 1, 1, 0, 6, 1, v0->unk_00); + StartScreenTransition(0, 1, 1, 0, 6, 1, v0->unk_00); *param1 = 1; break; case 1: - if (ScreenWipe_Done() == TRUE) { + if (IsScreenTransitionDone() == TRUE) { *param1 = 2; } break; case 2: if (sub_0209A0F4(v0) == TRUE) { - sub_0200F174(0, 0, 0, 0, 6, 1, v0->unk_00); + StartScreenTransition(0, 0, 0, 0, 6, 1, v0->unk_00); *param1 = 3; } break; case 3: - if (ScreenWipe_Done() == TRUE) { + if (IsScreenTransitionDone() == TRUE) { sub_0209A0E0(v0); sub_0209A044(v0); SetMainCallback(NULL, NULL); @@ -216,8 +215,8 @@ static void sub_02099F80(UnkStruct_02099DFC *param0) Bg_ClearTilemap(param0->unk_14, 0); } - sub_0200DD0C(param0->unk_14, 0, (512 - (18 + 12)), 2, 0, param0->unk_00); - sub_0200DAA4(param0->unk_14, 0, 512 - (18 + 12) - 9, 3, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_14, 0, (512 - (18 + 12)), 2, 0, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_14, 0, 512 - (18 + 12) - 9, 3, 0, param0->unk_00); Font_LoadTextPalette(0, 1 * (2 * 16), param0->unk_00); Bg_ClearTilesRange(0, 32, 0, param0->unk_00); Bg_MaskPalette(0, 0x6c21); @@ -260,12 +259,12 @@ static BOOL sub_0209A0F4(UnkStruct_02099DFC *param0) switch (param0->unk_04) { case 0: if (sub_0209A200(param0, 0, 1, 4) == TRUE) { - param0->unk_2C = sub_02002054(param0->unk_14, &Unk_020F89EC, 512 - (18 + 12) - 9, 3, 1, param0->unk_00); + param0->unk_2C = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_14, &Unk_020F89EC, 512 - (18 + 12) - 9, 3, 1, param0->unk_00); param0->unk_04 = 1; } break; case 1: { - u32 v1 = sub_02002114(param0->unk_2C, param0->unk_00); + u32 v1 = Menu_ProcessInputAndHandleExit(param0->unk_2C, param0->unk_00); switch (v1) { case 0: @@ -278,12 +277,12 @@ static BOOL sub_0209A0F4(UnkStruct_02099DFC *param0) } break; case 2: if (sub_0209A200(param0, 1, 1, 4) == TRUE) { - param0->unk_2C = sub_02002054(param0->unk_14, &Unk_020F89EC, (512 - (18 + 12)) - 9, 3, 1, param0->unk_00); + param0->unk_2C = Menu_MakeYesNoChoiceWithCursorAt(param0->unk_14, &Unk_020F89EC, (512 - (18 + 12)) - 9, 3, 1, param0->unk_00); param0->unk_04 = 3; } break; case 3: { - u32 v2 = sub_02002114(param0->unk_2C, param0->unk_00); + u32 v2 = Menu_ProcessInputAndHandleExit(param0->unk_2C, param0->unk_00); switch (v2) { case 0: @@ -296,13 +295,13 @@ static BOOL sub_0209A0F4(UnkStruct_02099DFC *param0) } break; case 4: if (sub_0209A200(param0, 2, 1, 0) == TRUE) { - param0->unk_34 = sub_0200E7FC(¶m0->unk_1C, 512 - (18 + 12)); + param0->unk_34 = Window_AddWaitDial(¶m0->unk_1C, 512 - (18 + 12)); param0->unk_04 = 5; } break; case 5: SaveData_Erase(param0->unk_30); - DeleteWaitDial(param0->unk_34); + DestroyWaitDial(param0->unk_34); param0->unk_04 = 6; break; case 6: @@ -321,7 +320,7 @@ static BOOL sub_0209A200(UnkStruct_02099DFC *param0, u32 param1, int param2, int switch (param0->unk_08) { case 0: Window_FillRectWithColor(¶m0->unk_1C, 15, 0, 0, 27 * 8, 4 * 8); - sub_0200E060(¶m0->unk_1C, 0, 512 - (18 + 12), 2); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_1C, 0, 512 - (18 + 12), 2); param0->unk_10 = Strbuf_Init(0x400, param0->unk_00); MessageLoader_GetStrbuf(param0->unk_18, param1, param0->unk_10); diff --git a/src/unk_0209A2C4.c b/src/unk_0209A2C4.c index 7771dc69a7..44ce14f72d 100644 --- a/src/unk_0209A2C4.c +++ b/src/unk_0209A2C4.c @@ -1,7 +1,6 @@ #include #include -#include "struct_decls/struct_02001AF4_decl.h" #include "struct_defs/struct_0203CC84.h" #include "struct_defs/struct_02099F80.h" @@ -10,13 +9,14 @@ #include "font.h" #include "gx_layers.h" #include "heap.h" +#include "menu.h" #include "message.h" #include "overlay_manager.h" +#include "render_window.h" #include "savedata.h" #include "strbuf.h" #include "text.h" #include "unk_02000C88.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" @@ -32,7 +32,7 @@ typedef struct { BgConfig *unk_18; MessageLoader *unk_1C; Window unk_20; - UIControlData *unk_30; + Menu *unk_30; SaveData *unk_34; void *unk_38; u32 unk_3C; @@ -182,8 +182,8 @@ static void sub_0209A3D0(UnkStruct_0209A3D0 *param0) Bg_InitFromTemplate(param0->unk_18, 0, &v2, 0); Bg_ClearTilemap(param0->unk_18, 0); } - sub_0200DD0C(param0->unk_18, 0, 512 - (18 + 12), 2, 0, param0->unk_00); - sub_0200DAA4(param0->unk_18, 0, (512 - (18 + 12)) - 9, 3, 0, param0->unk_00); + LoadMessageBoxGraphics(param0->unk_18, 0, 512 - (18 + 12), 2, 0, param0->unk_00); + LoadStandardWindowGraphics(param0->unk_18, 0, (512 - (18 + 12)) - 9, 3, 0, param0->unk_00); Font_LoadTextPalette(0, 1 * (2 * 16), param0->unk_00); Bg_ClearTilesRange(0, 32, 0, param0->unk_00); Bg_MaskPalette(0, 0); @@ -262,22 +262,22 @@ static BOOL sub_0209A544(UnkStruct_0209A3D0 *param0) case 2: Bg_MaskPalette(0, 0x6c21); Bg_MaskPalette(4, 0x6c21); - sub_0200F174(0, 1, 1, 0, 6, 1, param0->unk_00); + StartScreenTransition(0, 1, 1, 0, 6, 1, param0->unk_00); param0->unk_04 = 3; break; case 3: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { param0->unk_04 = 4; } break; case 4: if (sub_0209A688(param0, param0->unk_08, 0, 4) == 1) { - sub_0200F174(0, 0, 0, 0, 6, 1, param0->unk_00); + StartScreenTransition(0, 0, 0, 0, 6, 1, param0->unk_00); param0->unk_04 = 5; } break; case 5: - if (ScreenWipe_Done() == 1) { + if (IsScreenTransitionDone() == 1) { Bg_MaskPalette(0, 0); Bg_MaskPalette(4, 0); param0->unk_04 = 1; @@ -298,7 +298,7 @@ static BOOL sub_0209A688(UnkStruct_0209A3D0 *param0, u32 param1, int param2, int switch (param0->unk_0C) { case 0: Window_FillRectWithColor(¶m0->unk_20, 15, 0, 0, 27 * 8, 4 * 8); - sub_0200E060(¶m0->unk_20, 0, 512 - (18 + 12), 2); + Window_DrawMessageBoxWithScrollCursor(¶m0->unk_20, 0, 512 - (18 + 12), 2); param0->unk_14 = Strbuf_Init(0x400, param0->unk_00); MessageLoader_GetStrbuf(param0->unk_1C, param1, param0->unk_14); diff --git a/src/unk_0209A74C.c b/src/unk_0209A74C.c index b0ebb4b180..a949bb49d6 100644 --- a/src/unk_0209A74C.c +++ b/src/unk_0209A74C.c @@ -11,11 +11,11 @@ #include "gx_layers.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "unk_02000C88.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" @@ -98,7 +98,7 @@ void sub_0209A74C(int param0) SetAllGraphicsModes(&Unk_020F8ACC); Bg_InitFromTemplate(v0, 0, &Unk_020F8ADC, 0); Bg_ClearTilemap(v0, 0); - sub_0200DAA4(v0, 0, 512 - 9, 2, 0, param0); + LoadStandardWindowGraphics(v0, 0, 512 - 9, 2, 0, param0); Font_LoadTextPalette(0, 1 * (2 * 16), param0); Bg_ClearTilesRange(0, 32, 0, param0); Bg_MaskPalette(0, 27681); @@ -110,7 +110,7 @@ void sub_0209A74C(int param0) Text_ResetAllPrinters(); Window_AddFromTemplate(v0, &v1, &Unk_020F8AC4); Window_FillRectWithColor(&v1, 15, 0, 0, 26 * 8, 18 * 8); - Window_Show(&v1, 0, 512 - 9, 2); + Window_DrawStandardFrame(&v1, 0, 512 - 9, 2); MessageLoader_GetStrbuf(v2, v4, v3); Text_AddPrinterWithParams(&v1, FONT_SYSTEM, v3, 0, 0, TEXT_SPEED_INSTANT, NULL); Strbuf_Free(v3); @@ -172,7 +172,7 @@ void sub_0209A8E0(int param0) SetAllGraphicsModes(&Unk_020F8ACC); Bg_InitFromTemplate(v0, 0, &Unk_020F8ADC, 0); Bg_ClearTilemap(v0, 0); - sub_0200DAA4(v0, 0, 512 - 9, 2, 0, param0); + LoadStandardWindowGraphics(v0, 0, 512 - 9, 2, 0, param0); Font_LoadTextPalette(0, 1 * (2 * 16), param0); Bg_ClearTilesRange(0, 32, 0, param0); Bg_MaskPalette(0, 0x6c21); @@ -184,7 +184,7 @@ void sub_0209A8E0(int param0) Text_ResetAllPrinters(); Window_AddFromTemplate(v0, &v1, &Unk_020F8AC4); Window_FillRectWithColor(&v1, 15, 0, 0, 26 * 8, 18 * 8); - Window_Show(&v1, 0, (512 - 9), 2); + Window_DrawStandardFrame(&v1, 0, (512 - 9), 2); MessageLoader_GetStrbuf(v2, v4, v3); Text_AddPrinterWithParams(&v1, FONT_SYSTEM, v3, 0, 0, TEXT_SPEED_INSTANT, NULL); Strbuf_Free(v3); diff --git a/src/unk_0209AA74.c b/src/unk_0209AA74.c index c6b79ca03e..757f4bd158 100644 --- a/src/unk_0209AA74.c +++ b/src/unk_0209AA74.c @@ -11,11 +11,11 @@ #include "gx_layers.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "strbuf.h" #include "text.h" #include "unk_02000C88.h" #include "unk_0200A9DC.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02017728.h" @@ -108,7 +108,7 @@ void sub_0209AA74(int param0, int param1) SetAllGraphicsModes(&Unk_020F8B28); Bg_InitFromTemplate(v0, 0, &Unk_020F8B38, 0); Bg_ClearTilemap(v0, 0); - sub_0200DAA4(v0, 0, 512 - 9, 2, 0, param0); + LoadStandardWindowGraphics(v0, 0, 512 - 9, 2, 0, param0); Font_LoadTextPalette(0, 1 * (2 * 16), param0); Bg_ClearTilesRange(0, 32, 0, param0); Bg_MaskPalette(0, 0x6c21); @@ -120,7 +120,7 @@ void sub_0209AA74(int param0, int param1) Text_ResetAllPrinters(); Window_AddFromTemplate(v0, &v1, &Unk_020F8B20); Window_FillRectWithColor(&v1, 15, 0, 0, 26 * 8, 18 * 8); - Window_Show(&v1, 0, (512 - 9), 2); + Window_DrawStandardFrame(&v1, 0, (512 - 9), 2); MessageLoader_GetStrbuf(v2, v4, v3); Text_AddPrinterWithParams(&v1, FONT_SYSTEM, v3, 0, 0, TEXT_SPEED_INSTANT, NULL); Strbuf_Free(v3); diff --git a/src/unk_0209ACF4.c b/src/unk_0209ACF4.c index 90704cacae..97446c8da7 100644 --- a/src/unk_0209ACF4.c +++ b/src/unk_0209ACF4.c @@ -15,12 +15,12 @@ #include "core_sys.h" #include "heap.h" #include "message.h" +#include "render_window.h" #include "save_player.h" #include "strbuf.h" #include "string_template.h" #include "text.h" #include "unk_02005474.h" -#include "unk_0200DA60.h" #include "unk_0200F174.h" #include "unk_02014A84.h" #include "unk_0202D05C.h" @@ -169,7 +169,7 @@ static BOOL sub_0209AE14(TaskManager *param0) } break; case 5: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { sub_02097500(v0->unk_50, &(v0->unk_48)); sub_02097514(v0->unk_50); sub_0209ADBC(v0); @@ -190,7 +190,7 @@ static BOOL sub_0209AE14(TaskManager *param0) } break; case 8: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (sub_02097528(v0->unk_50)) { v0->unk_54 = 11; } else { @@ -266,11 +266,11 @@ static void sub_0209B084(UnkStruct_0209AD84 *param0, int param1, BOOL param2) } if (Window_IsInUse(v0) == 0) { - FieldMessage_AddWindow(param0->fieldSystem->unk_08, v0, 3); + FieldMessage_AddWindow(param0->fieldSystem->bgConfig, v0, 3); FieldMessage_DrawWindow(v0, SaveData_Options(param0->fieldSystem->saveData)); } else { sub_0205D988(v0); - sub_0200E060(v0, 0, 1024 - (18 + 12), 10); + Window_DrawMessageBoxWithScrollCursor(v0, 0, 1024 - (18 + 12), 10); } param0->unk_58 = FieldMessage_Print(v0, param0->unk_08, SaveData_Options(param0->fieldSystem->saveData), 1); @@ -286,7 +286,7 @@ static void sub_0209B110(UnkStruct_0209AD84 *param0) Window *v0 = &(param0->unk_18); if (Window_IsInUse(v0)) { - sub_0200E084(v0, 0); + Window_EraseMessageBox(v0, 0); } } @@ -297,8 +297,8 @@ static void sub_0209B12C(UnkStruct_0209AD84 *param0) if (Window_IsInUse(v0) == 0) { int v1; - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 155, 11, 0, 32); - Window_Add(param0->fieldSystem->unk_08, v0, 3, 1, 1, 13, 10, 13, 1); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 155, 11, 0, 32); + Window_Add(param0->fieldSystem->bgConfig, v0, 3, 1, 1, 13, 10, 13, 1); Window_FillTilemap(v0, 15); for (v1 = 0; v1 < 5; v1++) { @@ -313,13 +313,13 @@ static void sub_0209B12C(UnkStruct_0209AD84 *param0) param0->unk_5C = 0; param0->unk_60 = 5; - Window_Show(v0, 0, 155, 11); + Window_DrawStandardFrame(v0, 0, 155, 11); } static void sub_0209B1CC(UnkStruct_0209AD84 *param0) { Window *v0 = &(param0->unk_28); - Window_Clear(v0, 1); + Window_EraseStandardFrame(v0, 1); } static void sub_0209B1D8(UnkStruct_0209AD84 *param0) @@ -329,8 +329,8 @@ static void sub_0209B1D8(UnkStruct_0209AD84 *param0) if (Window_IsInUse(v0) == 0) { int v1; - sub_0200DAA4(param0->fieldSystem->unk_08, 3, 155, 11, 0, 32); - Window_Add(param0->fieldSystem->unk_08, v0, 3, 25, 13, 6, 4, 13, 131); + LoadStandardWindowGraphics(param0->fieldSystem->bgConfig, 3, 155, 11, 0, 32); + Window_Add(param0->fieldSystem->bgConfig, v0, 3, 25, 13, 6, 4, 13, 131); Window_FillTilemap(v0, 15); for (v1 = 0; v1 < 2; v1++) { @@ -345,13 +345,13 @@ static void sub_0209B1D8(UnkStruct_0209AD84 *param0) param0->unk_5C = 0; param0->unk_60 = 2; - Window_Show(v0, 0, 155, 11); + Window_DrawStandardFrame(v0, 0, 155, 11); } static void sub_0209B27C(UnkStruct_0209AD84 *param0) { Window *v0 = &(param0->unk_38); - Window_Clear(v0, 1); + Window_EraseStandardFrame(v0, 1); } static int sub_0209B288(UnkStruct_0209AD84 *param0) diff --git a/src/unk_0209B344.c b/src/unk_0209B344.c index 35d53fbbd1..0a169720b4 100644 --- a/src/unk_0209B344.c +++ b/src/unk_0209B344.c @@ -85,7 +85,7 @@ static BOOL sub_0209B3C4(TaskManager *param0) } break; case 3: - if (ScreenWipe_Done()) { + if (IsScreenTransitionDone()) { if (sub_02097528(v0->unk_10)) { *v0->unk_20 = 0; v0->unk_18 = 4;