Move TouchMore to new method

This commit is contained in:
UnknownShadow200 2020-02-09 20:09:27 +11:00
parent 8952b4f88c
commit b8b5a09a94
3 changed files with 34 additions and 27 deletions

View File

@ -3381,16 +3381,24 @@ void TexPackOverlay_Show(const String* url) {
#ifdef CC_BUILD_TOUCH #ifdef CC_BUILD_TOUCH
/*########################################################################################################################* /*########################################################################################################################*
*----------------------------------------------------UrlWarningOverlay----------------------------------------------------* *-----------------------------------------------------TouchMoreScreen-----------------------------------------------------*
*#########################################################################################################################*/ *#########################################################################################################################*/
static struct TouchMoreOverlay { static struct TouchMoreScreen {
Screen_Body Screen_Body
struct ButtonWidget buttons[8]; struct ButtonWidget btns[8];
} TouchMoreOverlay_Instance; } TouchMoreScreen;
static struct Widget* touchMore_widgets[8] = {
(struct Widget*)&TouchMoreScreen.btns[0], (struct Widget*)&TouchMoreScreen.btns[1],
(struct Widget*)&TouchMoreScreen.btns[2], (struct Widget*)&TouchMoreScreen.btns[3],
(struct Widget*)&TouchMoreScreen.btns[4], (struct Widget*)&TouchMoreScreen.btns[5],
(struct Widget*)&TouchMoreScreen.btns[6], (struct Widget*)&TouchMoreScreen.btns[7]
};
#define TOUCHMORE_MAX_VERTICES (8 * BUTTONWIDGET_MAX)
static void TouchMore_Toggle(KeyBind bind) { static void TouchMore_Toggle(KeyBind bind) {
int key = KeyBinds[bind]; int key = KeyBinds[bind];
Gui_Remove((struct Screen*)&TouchMoreOverlay_Instance); Gui_Remove((struct Screen*)&TouchMoreScreen);
Input_SetPressed(key, !Input_Pressed[key]); Input_SetPressed(key, !Input_Pressed[key]);
} }
@ -3402,7 +3410,7 @@ static void TouchMore_Screen(void* s, void* w) { TouchMore_Toggle(KEYBIND_FULLSC
static void TouchMore_Noclip(void* s, void* w) { TouchMore_Toggle(KEYBIND_NOCLIP); } static void TouchMore_Noclip(void* s, void* w) { TouchMore_Toggle(KEYBIND_NOCLIP); }
static void TouchMore_Menu(void* s, void* w) { static void TouchMore_Menu(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchMoreOverlay_Instance); Gui_Remove((struct Screen*)&TouchMoreScreen);
PauseScreen_Show(); PauseScreen_Show();
} }
@ -3411,7 +3419,7 @@ static void TouchMore_Fog(void* s, void* w) {
Input_SetPressed(KeyBinds[KEYBIND_FOG], false); Input_SetPressed(KeyBinds[KEYBIND_FOG], false);
} }
static const struct SimpleButtonDesc touchOverlay_btns[8] = { static const struct SimpleButtonDesc touchMore_btns[8] = {
{ -160, -50, "Chat", TouchMore_Chat }, { -160, -50, "Chat", TouchMore_Chat },
{ -160, 0, "Speed", TouchMore_Speed }, { -160, 0, "Speed", TouchMore_Speed },
{ -160, 50, "Fly", TouchMore_Fly }, { -160, 50, "Fly", TouchMore_Fly },
@ -3422,39 +3430,38 @@ static const struct SimpleButtonDesc touchOverlay_btns[8] = {
{ 160, 100, "Fog", TouchMore_Fog } { 160, 100, "Fog", TouchMore_Fog }
}; };
static void TouchMoreOverlay_ContextRecreated(void* screen) { static void TouchMoreScreen_ContextRecreated(void* screen) {
struct TouchMoreOverlay* s = (struct TouchMoreOverlay*)screen; struct TouchMoreScreen* s = (struct TouchMoreScreen*)screen;
struct FontDesc titleFont; struct FontDesc titleFont;
Menu_MakeTitleFont(&titleFont); Menu_MakeTitleFont(&titleFont);
Screen_CreateVb(screen);
Menu_SetButtons(s->buttons, &titleFont, touchOverlay_btns, 8); Menu_SetButtons(s->btns, &titleFont, touchMore_btns, 8);
Font_Free(&titleFont); Font_Free(&titleFont);
} }
static void TouchMoreOverlay_Init(void* screen) { static void TouchMoreScreen_Init(void* screen) {
static struct Widget* widgets[8]; struct TouchMoreScreen* s = (struct TouchMoreScreen*)screen;
struct TouchMoreOverlay* s = (struct TouchMoreOverlay*)screen; s->widgets = touchMore_widgets;
s->widgets = widgets; s->numWidgets = Array_Elems(touchMore_widgets);
s->numWidgets = Array_Elems(widgets); s->maxVertices = TOUCHMORE_MAX_VERTICES;
Menu_Buttons(s, s->buttons, 300, touchOverlay_btns, 8); Menu_Buttons(s, s->btns, 300, touchMore_btns, 8);
/* TODO: Close button */ /* TODO: Close button */
} }
static void TouchMoreOverlay_BuildMesh(void* screen) { } static const struct ScreenVTABLE TouchMoreScreen_VTABLE = {
TouchMoreScreen_Init, Screen_NullUpdate, Screen_NullFunc,
static const struct ScreenVTABLE TouchMoreOverlay_VTABLE = { MenuScreen_Render, Screen_BuildMesh,
TouchMoreOverlay_Init, Screen_NullUpdate, Screen_NullFunc,
MenuScreen_Render, TouchMoreOverlay_BuildMesh,
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText, Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll, Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
Screen_Layout, Screen_ContextLost, TouchMoreOverlay_ContextRecreated Screen_Layout, Screen_ContextLost, TouchMoreScreen_ContextRecreated
}; };
void TouchMoreOverlay_Show(void) { void TouchMoreScreen_Show(void) {
struct TouchMoreOverlay* s = &TouchMoreOverlay_Instance; struct TouchMoreScreen* s = &TouchMoreScreen;
s->grabsInput = true; s->grabsInput = true;
s->closable = true; s->closable = true;
s->VTABLE = &TouchMoreOverlay_VTABLE; s->VTABLE = &TouchMoreScreen_VTABLE;
Gui_Replace((struct Screen*)s, GUI_PRIORITY_TOUCHMORE); Gui_Replace((struct Screen*)s, GUI_PRIORITY_TOUCHMORE);
} }

View File

@ -37,6 +37,6 @@ void UrlWarningOverlay_Show(const String* url);
void TexIdsOverlay_Show(void); void TexIdsOverlay_Show(void);
void TexPackOverlay_Show(const String* url); void TexPackOverlay_Show(const String* url);
#ifdef CC_BUILD_TOUCH #ifdef CC_BUILD_TOUCH
void TouchMoreOverlay_Show(void); void TouchMoreScreen_Show(void);
#endif #endif
#endif #endif

View File

@ -1628,7 +1628,7 @@ static void TouchScreen_ModeClick(void* s, void* w) {
Input_Placing = !Input_Placing; Input_Placing = !Input_Placing;
TouchScreen_UpdateModeText(s); TouchScreen_UpdateModeText(s);
} }
static void TouchScreen_MoreClick(void* s, void* w) { TouchMoreOverlay_Show(); } static void TouchScreen_MoreClick(void* s, void* w) { TouchMoreScreen_Show(); }
static void TouchScreen_ContextRecreated(void* screen) { static void TouchScreen_ContextRecreated(void* screen) {
struct TouchScreen* s = (struct TouchScreen*)screen; struct TouchScreen* s = (struct TouchScreen*)screen;