From 5888c06be9b3401e7b32aa1f365a560c1d4ba4b3 Mon Sep 17 00:00:00 2001 From: Agent X <44549182+Agent-11@users.noreply.github.com> Date: Mon, 11 Dec 2023 20:30:58 -0500 Subject: [PATCH] Add coop compatbility checkbox to join menu --- src/pc/djui/djui_panel_join.c | 18 ++++++++++++++++++ src/pc/djui/djui_panel_join_direct.c | 23 +++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/pc/djui/djui_panel_join.c b/src/pc/djui/djui_panel_join.c index 3c2a0732..6aa7d9b7 100644 --- a/src/pc/djui/djui_panel_join.c +++ b/src/pc/djui/djui_panel_join.c @@ -6,8 +6,19 @@ #include "djui_panel_join_direct.h" #include "pc/network/network.h" #include "pc/utils/misc.h" +#include "pc/pc_main.h" #ifdef COOPNET +static struct DjuiText* sRestartText = NULL; + +static void djui_panel_compatibility_checkbox_on_value_change(UNUSED struct DjuiBase* caller) { + if (gCoopCompatibility != configCoopCompatibility) { + djui_text_set_text(sRestartText, DLANG(DISPLAY, MUST_RESTART)); + } else { + djui_text_set_text(sRestartText, ""); + } +} + static void djui_panel_join_public_lobbies(struct DjuiBase* caller) { djui_panel_join_lobbies_create(caller, ""); } @@ -23,7 +34,14 @@ void djui_panel_join_create(struct DjuiBase* caller) { djui_button_create(body, DLANG(JOIN, PUBLIC_LOBBIES), DJUI_BUTTON_STYLE_NORMAL, djui_panel_join_public_lobbies); djui_button_create(body, DLANG(JOIN, PRIVATE_LOBBIES), DJUI_BUTTON_STYLE_NORMAL, djui_panel_join_private_create); djui_button_create(body, DLANG(JOIN, DIRECT), DJUI_BUTTON_STYLE_NORMAL, djui_panel_join_direct_create); + djui_checkbox_create(body, DLANG(MISC, COOP_COMPATIBILITY), &configCoopCompatibility, djui_panel_compatibility_checkbox_on_value_change); djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back); + + sRestartText = djui_text_create(body, ""); + djui_text_set_alignment(sRestartText, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP); + djui_base_set_color(&sRestartText->base, 255, 100, 100, 255); + djui_base_set_size_type(&sRestartText->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE); + djui_base_set_size(&sRestartText->base, 1.0f, 64); } djui_panel_add(caller, panel, NULL); diff --git a/src/pc/djui/djui_panel_join_direct.c b/src/pc/djui/djui_panel_join_direct.c index bb933653..62068fda 100644 --- a/src/pc/djui/djui_panel_join_direct.c +++ b/src/pc/djui/djui_panel_join_direct.c @@ -15,6 +15,17 @@ #include "macros.h" static struct DjuiInputbox* sInputboxIp = NULL; +#ifndef COOPNET +static struct DjuiText* sRestartText = NULL; + +static void djui_panel_compatibility_checkbox_on_value_change(UNUSED struct DjuiBase* caller) { + if (gCoopCompatibility != configCoopCompatibility) { + djui_text_set_text(sRestartText, DLANG(DISPLAY, MUST_RESTART)); + } else { + djui_text_set_text(sRestartText, ""); + } +} +#endif static bool djui_panel_join_direct_ip_parse_numbers(char** msg) { int num = 0; @@ -172,6 +183,10 @@ void djui_panel_join_direct_create(struct DjuiBase* caller) { sInputboxIp = inputbox1; djui_panel_join_direct_ip_text_set(inputbox1); +#ifndef COOPNET + djui_checkbox_create(body, DLANG(MISC, COOP_COMPATIBILITY), &configCoopCompatibility, djui_panel_compatibility_checkbox_on_value_change); +#endif + struct DjuiRect* rect2 = djui_rect_container_create(body, 64); { struct DjuiButton* button1 = djui_button_create(&rect2->base, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back); @@ -183,6 +198,14 @@ void djui_panel_join_direct_create(struct DjuiBase* caller) { djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP); defaultBase = &button2->base; } + +#ifndef COOPNET + sRestartText = djui_text_create(body, ""); + djui_text_set_alignment(sRestartText, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP); + djui_base_set_color(&sRestartText->base, 255, 100, 100, 255); + djui_base_set_size_type(&sRestartText->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE); + djui_base_set_size(&sRestartText->base, 1.0f, 64); +#endif } djui_panel_add(caller, panel, defaultBase);