From b2901b232a00080258f6c5f564e9e7422a844df4 Mon Sep 17 00:00:00 2001 From: terencehill Date: Sat, 12 Mar 2022 15:16:44 +0100 Subject: [PATCH] Implement reliable detection of the Welcome dialog availability --- qcsrc/client/main.qc | 5 +---- qcsrc/menu/xonotic/dialog_welcome.qc | 7 +++++++ qcsrc/menu/xonotic/dialog_welcome.qh | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/qcsrc/client/main.qc b/qcsrc/client/main.qc index dde1467e6..42330a36d 100644 --- a/qcsrc/client/main.qc +++ b/qcsrc/client/main.qc @@ -1290,10 +1290,7 @@ NET_HANDLE(TE_CSQC_SERVERINFO, bool isNew) { string hostname = ReadString(); string msg = ReadString(); - // players running older Xonotic version without the Welocome dialog have the cvar - // cl_welcome_in_menu_dialog not saved because it was created by the relative autocvar - // initilaization when server's client program is run - if (cvar_type("cl_welcome_in_menu_dialog") & CVAR_TYPEFLAG_SAVED && autocvar_cl_welcome_in_menu_dialog) + if (cvar("_menu_welcome_dialog_available") && autocvar_cl_welcome_in_menu_dialog) { string welcomedialog_args; welcomedialog_args = strcat("name \"", hostname, "\""); diff --git a/qcsrc/menu/xonotic/dialog_welcome.qc b/qcsrc/menu/xonotic/dialog_welcome.qc index 86ba9a794..252ff9322 100644 --- a/qcsrc/menu/xonotic/dialog_welcome.qc +++ b/qcsrc/menu/xonotic/dialog_welcome.qc @@ -36,6 +36,13 @@ void XonoticWelcomeDialog_configureDialog(entity me) { welcomeDialog_resetStrings(me); SUPER(XonoticWelcomeDialog).configureDialog(me); + registercvar("_menu_welcome_dialog_available", "0", 0); + cvar_set("_menu_welcome_dialog_available", "1"); +} + +void XonoticWelcomeDialog_destroy(entity me) +{ + cvar_set("_menu_welcome_dialog_available", "0"); } void XonoticWelcomeDialog_readInputArgs(entity me, float argsbuf) diff --git a/qcsrc/menu/xonotic/dialog_welcome.qh b/qcsrc/menu/xonotic/dialog_welcome.qh index bc6c06d82..05652cfaa 100644 --- a/qcsrc/menu/xonotic/dialog_welcome.qh +++ b/qcsrc/menu/xonotic/dialog_welcome.qh @@ -12,6 +12,7 @@ CLASS(XonoticWelcomeDialog, XonoticRootDialog) METHOD(XonoticWelcomeDialog, keyDown, float(entity, float, float, float)); METHOD(XonoticWelcomeDialog, configureDialog, void(entity)); + METHOD(XonoticWelcomeDialog, destroy, void(entity)); METHOD(XonoticWelcomeDialog, readInputArgs, void(entity, float)); ATTRIB(XonoticWelcomeDialog, serverinfo_name, string, string_null); //ATTRIB(XonoticWelcomeDialog, serverinfo_name_ent, entity, world); -- 2.39.2