From 96c098bd433de4f63cfd10ae956757edc759cc8f Mon Sep 17 00:00:00 2001 From: camthehaxman Date: Fri, 19 Jan 2024 16:32:58 -0600 Subject: [PATCH] fix layout of some more menus, and put crosshair back on top screen --- src/Menus.c | 12 ++++++++++++ src/Screens.c | 4 ---- src/Widgets.c | 13 +++++++++---- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/Menus.c b/src/Menus.c index 763d52bbb..e52a2a422 100644 --- a/src/Menus.c +++ b/src/Menus.c @@ -261,6 +261,8 @@ static struct Widget* list_widgets[] = { #define LISTSCREEN_EMPTY "-" static void ListScreen_Layout(void* screen) { + enum Screen3DS scr = Window_3DS_SetRenderScreen(BOTTOM_SCREEN); + struct ListScreen* s = (struct ListScreen*)screen; int i; @@ -280,6 +282,8 @@ static void ListScreen_Layout(void* screen) { Widget_SetLocation(&s->left, ANCHOR_CENTRE, ANCHOR_CENTRE, -220, 0); Widget_SetLocation(&s->right, ANCHOR_CENTRE, ANCHOR_CENTRE, 220, 0); Widget_SetLocation(&s->title, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -155); + + Window_3DS_SetRenderScreen(scr); } static STRING_REF cc_string ListScreen_UNSAFE_Get(struct ListScreen* s, int index) { @@ -4145,11 +4149,15 @@ static void TouchOnscreenScreen_ContextRecreated(void* screen) { } static void TouchOnscreenScreen_Layout(void* screen) { + enum Screen3DS scr = Window_3DS_SetRenderScreen(BOTTOM_SCREEN); + struct TouchOnscreenScreen* s = (struct TouchOnscreenScreen*)screen; Menu_LayoutButtons(s->btns, s->btnDescs, ONSCREEN_PAGE_BTNS); Menu_LayoutBack(&s->back); Widget_SetLocation(&s->left, ANCHOR_CENTRE, ANCHOR_CENTRE, -260, 0); Widget_SetLocation(&s->right, ANCHOR_CENTRE, ANCHOR_CENTRE, 260, 0); + + Window_3DS_SetRenderScreen(scr); } static void TouchOnscreenScreen_Init(void* screen) { @@ -4322,9 +4330,13 @@ static void TouchCtrlsScreen_ContextRecreated(void* screen) { } static void TouchCtrlsScreen_Layout(void* screen) { + enum Screen3DS scr = Window_3DS_SetRenderScreen(BOTTOM_SCREEN); + struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen; Menu_LayoutButtons(s->btns, touchCtrls_btns, TOUCHCTRLS_BTNS); Menu_LayoutBack(&s->back); + + Window_3DS_SetRenderScreen(scr); } static void TouchCtrlsScreen_Init(void* screen) { diff --git a/src/Screens.c b/src/Screens.c index 5c886f723..d4b2eb9b9 100644 --- a/src/Screens.c +++ b/src/Screens.c @@ -389,8 +389,6 @@ static void HUDScreen_Render(void* screen, double delta) { if (Gui_GetBlocksWorld()) return; - enum Screen3DS scr = Window_3DS_SetRenderScreen(BOTTOM_SCREEN); - Gfx_BindDynamicVb(s->vb); Widget_Render2(&s->hotbar, 12); @@ -399,8 +397,6 @@ static void HUDScreen_Render(void* screen, double delta) { Gfx_BindDynamicVb(s->vb); /* Have to rebind for mobile right now... */ Gfx_DrawVb_IndexedTris(4); } - - Window_3DS_SetRenderScreen(scr); } static const struct ScreenVTABLE HUDScreen_VTABLE = { diff --git a/src/Widgets.c b/src/Widgets.c index 5917ad675..c79781b81 100644 --- a/src/Widgets.c +++ b/src/Widgets.c @@ -447,16 +447,21 @@ static void HotbarWidget_RenderEntries(struct HotbarWidget* w, int offset) { } static int HotbarWidget_Render2(void* widget, int offset) { + enum Screen3DS scr = Window_3DS_SetRenderScreen(BOTTOM_SCREEN); + struct HotbarWidget* w = (struct HotbarWidget*)widget; HotbarWidget_RenderOutline(w, offset ); HotbarWidget_RenderEntries(w, offset + 8); #ifdef CC_BUILD_TOUCH - if (!Input_TouchMode) return HOTBAR_MAX_VERTICES; - w->ellipsisTex.x = HotbarWidget_TileX(w, HOTBAR_MAX_INDEX) - w->ellipsisTex.Width / 2; - w->ellipsisTex.y = w->y + (w->height / 2) - w->ellipsisTex.Height / 2; - Texture_Render(&w->ellipsisTex); + if (Input_TouchMode) { + w->ellipsisTex.x = HotbarWidget_TileX(w, HOTBAR_MAX_INDEX) - w->ellipsisTex.Width / 2; + w->ellipsisTex.y = w->y + (w->height / 2) - w->ellipsisTex.Height / 2; + Texture_Render(&w->ellipsisTex); + } #endif + + Window_3DS_SetRenderScreen(scr); return HOTBAR_MAX_VERTICES; }