From d45fa146e8e49ef80f45f2de8fbbcc92cdbb67fc Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Sat, 14 Sep 2013 21:18:45 -0400 Subject: [PATCH] Implement a "requiresConnect" attribute for menu dialogs --- qcsrc/menu/item/dialog.c | 2 ++ qcsrc/menu/menu.qc | 3 ++- qcsrc/menu/xonotic/dialog_teamselect.c | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/qcsrc/menu/item/dialog.c b/qcsrc/menu/item/dialog.c index ed73be095..5fa010353 100644 --- a/qcsrc/menu/item/dialog.c +++ b/qcsrc/menu/item/dialog.c @@ -58,6 +58,8 @@ CLASS(Dialog) EXTENDS(InputContainer) ATTRIB(Dialog, zoomedOutTitleBarPosition, float, 0) ATTRIB(Dialog, zoomedOutTitleBar, float, 0) + ATTRIB(Dialog, requiresConnection, float, 0) // set to TRUE if the dialog requires a connection to be opened + ATTRIB(Dialog, backgroundImage, string, string_null) ATTRIB(Dialog, borderLines, float, 1) ATTRIB(Dialog, closeButtonImage, string, string_null) diff --git a/qcsrc/menu/menu.qc b/qcsrc/menu/menu.qc index 7339e6969..1afc9f85d 100644 --- a/qcsrc/menu/menu.qc +++ b/qcsrc/menu/menu.qc @@ -991,7 +991,8 @@ void m_goto(string itemname) for(e = NULL; (e = find(e, name, itemname)); ) if(e.classname != "vtbl") break; - if(e) + + if((e) && (!e.requiresConnection || (gamestatus & (GAME_ISSERVER | GAME_CONNECTED)))) { m_hide(); m_activate_window(e); diff --git a/qcsrc/menu/xonotic/dialog_teamselect.c b/qcsrc/menu/xonotic/dialog_teamselect.c index 7fb154c8a..10efc3c25 100644 --- a/qcsrc/menu/xonotic/dialog_teamselect.c +++ b/qcsrc/menu/xonotic/dialog_teamselect.c @@ -12,6 +12,7 @@ CLASS(XonoticTeamSelectDialog) EXTENDS(XonoticRootDialog) ATTRIB(XonoticTeamSelectDialog, team2, entity, NULL) ATTRIB(XonoticTeamSelectDialog, team3, entity, NULL) ATTRIB(XonoticTeamSelectDialog, team4, entity, NULL) + ATTRIB(XonoticTeamSelectDialog, requiresConnection, float, TRUE) ENDCLASS(XonoticTeamSelectDialog) #endif -- 2.39.2