From: terencehill Date: Sun, 13 Mar 2022 11:07:14 +0000 (+0100) Subject: Merge branch 'master' into terencehill/menu_quit_game X-Git-Tag: xonotic-v0.8.5~129^2~7 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=415aa53e6a5e50a97d95e14f48fb3589f04f64d5;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into terencehill/menu_quit_game --- 415aa53e6a5e50a97d95e14f48fb3589f04f64d5 diff --cc qcsrc/menu/xonotic/mainwindow.qc index 22853c9ba,f5d2aca98..2a100c5b4 --- a/qcsrc/menu/xonotic/mainwindow.qc +++ b/qcsrc/menu/xonotic/mainwindow.qc @@@ -54,11 -59,44 +55,17 @@@ void MainWindow_draw(entity me { SUPER(MainWindow).draw(me); - if(me.dialogToShow) - { - DialogOpenButton_Click_withCoords(NULL, me.dialogToShow, '0 0 0', eX * conwidth + eY * conheight); - me.dialogToShow = NULL; + if (me.firstDraw) { + if (me.ToSDialog.shouldShow()) + { + me.ToSDialog.loadXonoticToS(me.ToSDialog); + DialogOpenButton_Click_withCoords(NULL, me.ToSDialog, '0 0 0', eX * conwidth + eY * conheight); + } + else if(me.firstRunDialog.shouldShow()) + DialogOpenButton_Click_withCoords(NULL, me.firstRunDialog, '0 0 0', eX * conwidth + eY * conheight); + + me.firstDraw = false; } - - //------------------------------------- - // Part of Disconnect Dialog button: - // In case of this function is recalling every time, need to use condition of visibility - - if (me.disconnectDialogVisibility && !(gamestatus & (GAME_ISSERVER | GAME_CONNECTED))) - { - // If gamestate is not "ingame" (and it is a first "frame" of drawing (or dialog is visible)), - // disconnect button is unnecessary, remove it - me.removeItem(me.mainNexposee, me.disconnectDialog); - me.disconnectDialogVisibility = 0; - - } else if(!me.disconnectDialogVisibility && (gamestatus & (GAME_ISSERVER | GAME_CONNECTED))) { - - // If gamestate is "ingame" (and dialog is not visible), - // make disconnect button visible - entity n, i; - n = me.mainNexposee; - i = me.disconnectDialog; - n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z); - n.setNexposee(n, i, '0.5 1.2 0.0', SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y); - me.disconnectDialogVisibility = 1; - } - - // I haven't found the best solution for making button visible. - // Alpha channel is the worst thing, because dialog with alpha is also clickable - //------------------------------------- } void DemoButton_Click(entity me, entity other) @@@ -292,7 -343,5 +304,4 @@@ void MainWindow_configureMainWindow(ent me.moveItemAfter(me, n, NULL); me.initializeDialog(me, n); - - if(cvar_string("_cl_name") == cvar_defstring("_cl_name")) - me.dialogToShow = me.firstRunDialog; - me.disconnectDialogVisibility = 1; } diff --cc qcsrc/menu/xonotic/serverlist.qc index d0a626681,7d5d21e30..e07081e54 --- a/qcsrc/menu/xonotic/serverlist.qc +++ b/qcsrc/menu/xonotic/serverlist.qc @@@ -530,9 -539,9 +539,8 @@@ void XonoticServerList_draw(entity me me.nItems = itemcount; } } - else { me.nItems = gethostcachevalue(SLIST_HOSTCACHEVIEWCOUNT); } me.connectButton.disabled = (me.ipAddressBox.text == ""); - //me.disconnectButton.disabled = (!(gamestatus & (GAME_ISSERVER | GAME_CONNECTED))); me.infoButton.disabled = !owned; me.favoriteButton.disabled = (me.ipAddressBox.text == "");