Mobile: Move 'Chat' and 'Fog' into main touch menu instead of touch controls menu

This commit is contained in:
UnknownShadow200 2020-12-13 17:52:32 +11:00
parent cfa8944d1a
commit cba3fd587b

View File

@ -3794,7 +3794,7 @@ void TouchOnscreenScreen_Show(void) {
/*########################################################################################################################* /*########################################################################################################################*
*---------------------------------------------------TouchControlsScreen---------------------------------------------------* *---------------------------------------------------TouchControlsScreen---------------------------------------------------*
*#########################################################################################################################*/ *#########################################################################################################################*/
#define TOUCHCTRLS_BTNS 6 #define TOUCHCTRLS_BTNS 4
static struct TouchCtrlsScreen { static struct TouchCtrlsScreen {
Screen_Body Screen_Body
struct ButtonWidget back; struct ButtonWidget back;
@ -3805,19 +3805,18 @@ static struct TouchCtrlsScreen {
static struct Widget* touchCtrls_widgets[1 + TOUCHCTRLS_BTNS] = { static struct Widget* touchCtrls_widgets[1 + TOUCHCTRLS_BTNS] = {
(struct Widget*)&TouchCtrlsScreen.back, (struct Widget*)&TouchCtrlsScreen.btns[0], (struct Widget*)&TouchCtrlsScreen.back, (struct Widget*)&TouchCtrlsScreen.btns[0],
(struct Widget*)&TouchCtrlsScreen.btns[1], (struct Widget*)&TouchCtrlsScreen.btns[2], (struct Widget*)&TouchCtrlsScreen.btns[1], (struct Widget*)&TouchCtrlsScreen.btns[2],
(struct Widget*)&TouchCtrlsScreen.btns[3], (struct Widget*)&TouchCtrlsScreen.btns[4], (struct Widget*)&TouchCtrlsScreen.btns[3]
(struct Widget*)&TouchCtrlsScreen.btns[5]
}; };
#define TOUCHCTRLS_MAX_VERTICES (BUTTONWIDGET_MAX + TOUCHCTRLS_BTNS * BUTTONWIDGET_MAX) #define TOUCHCTRLS_MAX_VERTICES (BUTTONWIDGET_MAX + TOUCHCTRLS_BTNS * BUTTONWIDGET_MAX)
static void TouchCtrls_UpdateTapText(void* screen) { static void TouchCtrls_UpdateTapText(void* screen) {
struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen; struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen;
ButtonWidget_SetConst(&s->btns[2], Input_TapPlace ? "Tap: Place" : "Tap: Delete", &s->font); ButtonWidget_SetConst(&s->btns[0], Input_TapPlace ? "Tap: Place" : "Tap: Delete", &s->font);
s->dirty = true; s->dirty = true;
} }
static void TouchCtrls_UpdateHoldText(void* screen) { static void TouchCtrls_UpdateHoldText(void* screen) {
struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen; struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen;
ButtonWidget_SetConst(&s->btns[3], Input_HoldPlace ? "Hold: Place" : "Hold: Delete", &s->font); ButtonWidget_SetConst(&s->btns[1], Input_HoldPlace ? "Hold: Place" : "Hold: Delete", &s->font);
s->dirty = true; s->dirty = true;
} }
@ -3828,15 +3827,10 @@ static void TouchCtrls_UpdateSensitivity(void* screen) {
String_AppendConst(&value, "Sensitivity: "); String_AppendConst(&value, "Sensitivity: ");
MiscOptionsScreen_GetSensitivity(&value); MiscOptionsScreen_GetSensitivity(&value);
ButtonWidget_Set(&s->btns[4], &value, &s->font); ButtonWidget_Set(&s->btns[2], &value, &s->font);
s->dirty = true; s->dirty = true;
} }
static void TouchCtrls_Chat(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchCtrlsScreen);
ChatScreen_OpenInput(&String_Empty);
}
static void TouchCtrls_Fog(void* s, void* w) { Game_CycleViewDistance(); }
static void TouchCtrls_More(void* s, void* w) { TouchMoreScreen_Show(); } static void TouchCtrls_More(void* s, void* w) { TouchMoreScreen_Show(); }
static void TouchCtrls_Onscreen(void* s, void* w) { TouchOnscreenScreen_Show(); } static void TouchCtrls_Onscreen(void* s, void* w) { TouchOnscreenScreen_Show(); }
@ -3866,14 +3860,12 @@ static void TouchCtrls_Sensitivity(void* screen, void* w) {
MenuInputOverlay_Show(&desc, &value, TouchCtrls_OnDone, true); MenuInputOverlay_Show(&desc, &value, TouchCtrls_OnDone, true);
/* Fix Sensitivity button getting stuck as 'active' */ /* Fix Sensitivity button getting stuck as 'active' */
/* (input overlay swallows subsequent pointer events) */ /* (input overlay swallows subsequent pointer events) */
s->btns[4].active = 0; s->btns[2].active = 0;
} }
static const struct SimpleButtonDesc touchCtrls_btns[8] = { static const struct SimpleButtonDesc touchCtrls_btns[4] = {
{ -120, -50, "Chat", TouchCtrls_Chat }, { -120, -50, "", TouchCtrls_Tap },
{ 120, -50, "Fog", TouchCtrls_Fog }, { 120, -50, "", TouchCtrls_Hold },
{ -120, 0, "", TouchCtrls_Tap },
{ 120, 0, "", TouchCtrls_Hold },
{ 0, 50, "", TouchCtrls_Sensitivity }, { 0, 50, "", TouchCtrls_Sensitivity },
{ 0, 100, "On-screen controls", TouchCtrls_Onscreen } { 0, 100, "On-screen controls", TouchCtrls_Onscreen }
}; };
@ -3908,8 +3900,8 @@ static void TouchCtrlsScreen_Init(void* screen) {
s->numWidgets = Array_Elems(touchCtrls_widgets); s->numWidgets = Array_Elems(touchCtrls_widgets);
s->maxVertices = TOUCHCTRLS_MAX_VERTICES; s->maxVertices = TOUCHCTRLS_MAX_VERTICES;
Menu_InitButtons(s->btns, 200, touchCtrls_btns, 4); Menu_InitButtons(s->btns, 200, touchCtrls_btns, 2);
Menu_InitButtons(s->btns + 4, 400, touchCtrls_btns + 4, 2); Menu_InitButtons(s->btns + 2, 400, touchCtrls_btns + 2, 2);
Menu_InitBack(&s->back, TouchCtrls_More); Menu_InitBack(&s->back, TouchCtrls_More);
} }
@ -3933,7 +3925,7 @@ void TouchCtrlsScreen_Show(void) {
/*########################################################################################################################* /*########################################################################################################################*
*-----------------------------------------------------TouchMoreScreen-----------------------------------------------------* *-----------------------------------------------------TouchMoreScreen-----------------------------------------------------*
*#########################################################################################################################*/ *#########################################################################################################################*/
#define TOUCHMORE_BTNS 4 #define TOUCHMORE_BTNS 6
static struct TouchMoreScreen { static struct TouchMoreScreen {
Screen_Body Screen_Body
struct ButtonWidget back; struct ButtonWidget back;
@ -3943,7 +3935,8 @@ static struct TouchMoreScreen {
static struct Widget* touchMore_widgets[1 + TOUCHMORE_BTNS] = { static struct Widget* touchMore_widgets[1 + TOUCHMORE_BTNS] = {
(struct Widget*)&TouchMoreScreen.back, (struct Widget*)&TouchMoreScreen.btns[0], (struct Widget*)&TouchMoreScreen.back, (struct Widget*)&TouchMoreScreen.btns[0],
(struct Widget*)&TouchMoreScreen.btns[1], (struct Widget*)&TouchMoreScreen.btns[2], (struct Widget*)&TouchMoreScreen.btns[1], (struct Widget*)&TouchMoreScreen.btns[2],
(struct Widget*)&TouchMoreScreen.btns[3] (struct Widget*)&TouchMoreScreen.btns[3], (struct Widget*)&TouchMoreScreen.btns[4],
(struct Widget*)&TouchMoreScreen.btns[5]
}; };
#define TOUCHMORE_MAX_VERTICES (BUTTONWIDGET_MAX + TOUCHMORE_BTNS * BUTTONWIDGET_MAX) #define TOUCHMORE_MAX_VERTICES (BUTTONWIDGET_MAX + TOUCHMORE_BTNS * BUTTONWIDGET_MAX)
@ -3963,12 +3956,19 @@ static void TouchMore_Menu(void* s, void* w) {
static void TouchMore_Game(void* s, void* w) { static void TouchMore_Game(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchMoreScreen); Gui_Remove((struct Screen*)&TouchMoreScreen);
} }
static void TouchMore_Chat(void* s, void* w) {
Gui_Remove((struct Screen*)&TouchCtrlsScreen);
ChatScreen_OpenInput(&String_Empty);
}
static void TouchMore_Fog(void* s, void* w) { Game_CycleViewDistance(); }
static const struct SimpleButtonDesc touchMore_btns[TOUCHMORE_BTNS] = { static const struct SimpleButtonDesc touchMore_btns[TOUCHMORE_BTNS] = {
{ 0, -50, "Screenshot", TouchMore_Take }, { -102, -50, "Screenshot", TouchMore_Take },
{ 0, 0, "Fullscreen", TouchMore_Screen }, { -102, 0, "Fullscreen", TouchMore_Screen },
{ 0, 50, "Controls", TouchMore_Ctrls }, { 102, -50, "Chat", TouchMore_Chat },
{ 0, 100, "Main menu", TouchMore_Menu } { 102, 0, "Fog", TouchMore_Fog },
{ 0, 50, "Controls", TouchMore_Ctrls },
{ 0, 100, "Main menu", TouchMore_Menu }
}; };
static void TouchMoreScreen_ContextRecreated(void* screen) { static void TouchMoreScreen_ContextRecreated(void* screen) {
@ -3994,7 +3994,8 @@ static void TouchMoreScreen_Init(void* screen) {
s->numWidgets = Array_Elems(touchMore_widgets); s->numWidgets = Array_Elems(touchMore_widgets);
s->maxVertices = TOUCHMORE_MAX_VERTICES; s->maxVertices = TOUCHMORE_MAX_VERTICES;
Menu_InitButtons(s->btns, 400, touchMore_btns, TOUCHMORE_BTNS); Menu_InitButtons(s->btns, 195, touchMore_btns, 4);
Menu_InitButtons(s->btns + 4, 400, touchMore_btns + 4, 2);
Menu_InitBack(&s->back, TouchMore_Game); Menu_InitBack(&s->back, TouchMore_Game);
} }