From e0e81c5fbe6a0c0bdcbb5a1de5e16dfb1ffdc091 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Tue, 9 Jul 2019 14:07:19 +0800 Subject: finished menu (1 failed attempt) --- include/menu.h | 61 +++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 20 deletions(-) (limited to 'include/menu.h') diff --git a/include/menu.h b/include/menu.h index 19efc3ad9..55083db0e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -17,44 +17,65 @@ struct MenuAction } func; }; +struct WindowTemplateWithAttr +{ + struct WindowTemplate *ptr; + u32 attr; +}; + void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *); +void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing); void sub_8198070(u8 windowId, bool8 copyToVram); -void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); -void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); void ScheduleBgCopyTilemapToVram(u8 bgNum); void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs); void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); -u8 GetMenuCursorPos(void); -s8 ProcessMenuInput(void); -s8 ProcessMenuInputNoWrapAround(void); void ResetTempTileDataBuffers(void); void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode); bool8 FreeTempTileDataBuffersIfPossible(void); -u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd -s8 Menu_ProcessInputNoWrapClearOnChoose(void); void DoScheduledBgTilemapCopiesToVram(void); void ClearScheduledBgCopiesToVram(void); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3); -void ClearMenuWindow(u8 windowId, bool8 copyToVram); void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); -void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16); -void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8); -void PrintTextOnRightSnappedWindow(const u8 *, u32, u8); -void sub_810F71C(void); -void sub_810F740(void); -u8 ProgramAndPlaceMenuCursorOnWindow(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPosition); -void CreateYesNoMenu(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8); -void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); -void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); -void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1); -void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *); +// list_menu void sub_8107CD8(u8 palOffset, u16 speciesId); void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y); -void sub_8107D38(u8, u8); +void sub_8107D38(u8 palOffset, u8 palId); void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y); +// menu +s8 Menu_ProcessInputGridLayout(void); +u8 MultichoiceGridInitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cols, u8 rows, u8 cursorPos); +void MultichoiceGridPrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs); +void DestroyYesNoMenu(void); +s8 Menu_ProcessInputNoWrapClearOnChoose(void); +void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos); +void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *orderArray); +void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs); +void PrintMultichoiceListItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing); +void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs); +s8 Menu_ProcessInputNoWrapAround_other(void); +s8 Menu_ProcessInput_other(void); +s8 Menu_ProcessInputNoWrapAround(void); +s8 Menu_ProcessInput(void); +u8 Menu_GetCursorPos(void); +u8 Menu_InitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos); +u8 Menu_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos, bool8 APressMuted); +void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgColorChooser, u8 notUsed, bool8 copyToVram); +void TopBarWindowPrintString(const u8 *string, u8 unUsed, bool8 copyToVram); +void ClearTopBarWindow(void); +void DestroyTopBarWindow(void); +u8 CreateTopBarWindowLoadPalette(u8 bg, u8 width, u8 yPos, u8 palette, u16 baseTile); +void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); +void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum); +void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); +void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum); + +// currently incorrect, WIP +void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock); + + #endif // GUARD_MENU_H -- cgit v1.2.3 From eb1719afc6e04e0916ba2080fce9685b422980fa Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Tue, 9 Jul 2019 15:05:58 +0800 Subject: updated menu.h --- include/menu.h | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'include/menu.h') diff --git a/include/menu.h b/include/menu.h index 55083db0e..3cd7b140a 100644 --- a/include/menu.h +++ b/include/menu.h @@ -23,22 +23,15 @@ struct WindowTemplateWithAttr u32 attr; }; -void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *); -void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing); -void sub_8198070(u8 windowId, bool8 copyToVram); -void ScheduleBgCopyTilemapToVram(u8 bgNum); -void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs); -void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); -void ResetTempTileDataBuffers(void); -void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode); -bool8 FreeTempTileDataBuffersIfPossible(void); -void DoScheduledBgTilemapCopiesToVram(void); -void ClearScheduledBgCopiesToVram(void); +// menu2 +void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const struct TextColor * color, s8 speed, const u8 * str); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); -void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3); -void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing); +void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); +u8 sub_812EA78(u16 species, u32 personality, u8 a2); +s8 sub_812EAE4(u16 species, u32 personality, u8 a2); // list_menu void sub_8107CD8(u8 palOffset, u16 speciesId); -- cgit v1.2.3 From 05371e58753668147ec9e4d4bd161e5a044c058b Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Tue, 9 Jul 2019 23:54:05 +0800 Subject: fixed more header issue --- include/menu.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/menu.h') diff --git a/include/menu.h b/include/menu.h index 3cd7b140a..cc685d682 100644 --- a/include/menu.h +++ b/include/menu.h @@ -55,6 +55,8 @@ s8 Menu_ProcessInput_other(void); s8 Menu_ProcessInputNoWrapAround(void); s8 Menu_ProcessInput(void); u8 Menu_GetCursorPos(void); +u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta); +u8 Menu_MoveCursor(s8 cursorDelta); u8 Menu_InitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos); u8 Menu_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos, bool8 APressMuted); void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgColorChooser, u8 notUsed, bool8 copyToVram); -- cgit v1.2.3 From bcf27c2de147b1a04c32f8f9e5dd8a5eca657455 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Wed, 10 Jul 2019 03:19:28 +0800 Subject: resolved SetWindowTemplateFields --- include/menu.h | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'include/menu.h') diff --git a/include/menu.h b/include/menu.h index cc685d682..7c7e164ae 100644 --- a/include/menu.h +++ b/include/menu.h @@ -17,12 +17,6 @@ struct MenuAction } func; }; -struct WindowTemplateWithAttr -{ - struct WindowTemplate *ptr; - u32 attr; -}; - // menu2 void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const struct TextColor * color, s8 speed, const u8 * str); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); @@ -68,9 +62,6 @@ void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum); void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum); - -// currently incorrect, WIP -void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock); - +struct WindowTemplate SetWindowTemplateFields(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock); #endif // GUARD_MENU_H -- cgit v1.2.3 From 9d539994652736c50a054c8d3c6beb8f221f3428 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Wed, 10 Jul 2019 03:21:34 +0800 Subject: polish and bug fix --- include/menu.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include/menu.h') diff --git a/include/menu.h b/include/menu.h index 7c7e164ae..6d8de3274 100644 --- a/include/menu.h +++ b/include/menu.h @@ -35,14 +35,14 @@ void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y); // menu s8 Menu_ProcessInputGridLayout(void); -u8 MultichoiceGridInitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cols, u8 rows, u8 cursorPos); -void MultichoiceGridPrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs); +u8 MultichoiceGrid_InitCursor(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cols, u8 rows, u8 cursorPos); +void MultichoiceGrid_PrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs); void DestroyYesNoMenu(void); s8 Menu_ProcessInputNoWrapClearOnChoose(void); void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos); void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *orderArray); void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs); -void PrintMultichoiceListItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing); +void MultichoiceList_PrintItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing); void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs); s8 Menu_ProcessInputNoWrapAround_other(void); s8 Menu_ProcessInput_other(void); -- cgit v1.2.3