bind PAUSE pause
bind F9 "cl_cmd hud minigame"
bind F10 menu_showquitdialog
-bind F11 menu_showdisconnectdialog
+bind F11 menu_showquitdialog
bind F12 screenshot
bind F4 ready
alias menu_showhudoptions "menu_cmd directpanelhudmenu ${* ?}"
alias menu_showsandboxtools "menu_cmd directmenu SandboxTools"
alias menu_showquitdialog "menu_cmd directmenu Quit"
-alias menu_showdisconnectdialog "menu_cmd directmenu Disconnect"
alias menu_showmonstertools "menu_cmd directmenu MonsterTools"
// command executed before loading a map by the menu
#include <menu/xonotic/demolist.qc>
#include <menu/xonotic/dialog.qc>
#include <menu/xonotic/dialog_credits.qc>
-#include <menu/xonotic/dialog_disconnect.qc>
#include <menu/xonotic/dialog_firstrun.qc>
#include <menu/xonotic/dialog_hudpanel_ammo.qc>
#include <menu/xonotic/dialog_hudpanel_centerprint.qc>
#include <menu/xonotic/demolist.qh>
#include <menu/xonotic/dialog.qh>
#include <menu/xonotic/dialog_credits.qh>
-#include <menu/xonotic/dialog_disconnect.qh>
#include <menu/xonotic/dialog_firstrun.qh>
#include <menu/xonotic/dialog_hudpanel_ammo.qh>
#include <menu/xonotic/dialog_hudpanel_centerprint.qh>
+++ /dev/null
-#include "dialog_disconnect.qh"
-
-#include "textlabel.qh"
-#include "button.qh"
-
-void Disconnect_Click(entity btn, entity me)
-{
- localcmd("disconnect\n");
- Dialog_Close(btn, me);
-}
-
-void XonoticDisconnectDialog_fill(entity me)
-{
- entity e;
- me.TR(me);
- me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("Are you sure to disconnect from server?")));
- me.TR(me);
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticButton_T(_("Yes"), '1 0 0', _("I would disconnect from server...")));
- e.onClick = Disconnect_Click;
- e.onClickEntity = me;
- me.TD(me, 1, 1, e = makeXonoticButton_T(_("No"), '0 1 0', _("I would play more!")));
- e.onClick = Dialog_Close;
- e.onClickEntity = me;
-}
+++ /dev/null
-#pragma once
-
-#include "dialog.qh"
-CLASS(XonoticDisconnectDialog, XonoticDialog)
- METHOD(XonoticDisconnectDialog, fill, void(entity));
- ATTRIB(XonoticDisconnectDialog, title, string, _("Disconnect"));
- ATTRIB(XonoticDisconnectDialog, tooltip, string, _("Disconnect from the server you are connected to"));
- ATTRIB(XonoticDisconnectDialog, color, vector, SKINCOLOR_DIALOG_QUIT);
- ATTRIB(XonoticDisconnectDialog, intendedWidth, float, 0.5);
- ATTRIB(XonoticDisconnectDialog, rows, float, 3);
- ATTRIB(XonoticDisconnectDialog, colums, float, 2);
- ATTRIB(XonoticDisconnectDialog, name, string, "Disconnect");
-ENDCLASS(XonoticDisconnectDialog)
#include "commandbutton.qh"
#include "button.qh"
+void Disconnect_Click(entity btn, entity me)
+{
+ localcmd(QUITGAME_CMD);
+ Dialog_Close(btn, me);
+}
+
+void XonoticQuitDialog_draw(entity me)
+{
+ entity e = me.disconnectButton;
+ e.disabled = !(gamestatus & (GAME_ISSERVER | GAME_CONNECTED));
+ if(cvar("g_campaign"))
+ e.setText(e, _("Quit campaign"));
+ else
+ e.setText(e, _("Quit current game"));
+ SUPER(XonoticQuitDialog).draw(me);
+}
+
void XonoticQuitDialog_fill(entity me)
{
entity e;
me.TR(me);
- me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("Are you sure you want to quit?")));
+ me.TDempty(me, 0.5);
+ me.TD(me, 1, 1, me.disconnectButton = makeXonoticButton(string_null, '0 0 0'));
+ me.disconnectButton.onClick = Disconnect_Click;
+ me.disconnectButton.onClickEntity = me;
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCommandButton_T(_("Yes"), '1 0 0', "echo ]quit; quit", 0,
- _("Back to work...")));
- me.TD(me, 1, 1, e = makeXonoticButton_T(_("No"), '0 1 0',
- _("I got some more fragging to do!")));
+ me.TD(me, 1, 1, e = makeXonoticCommandButton(_("Quit Xonotic"), '1 0 0', "echo ]quit; quit", 0));
+ me.TD(me, 1, 1, e = makeXonoticButton(_("Cancel"), '0 1 0'));
e.onClick = Dialog_Close;
e.onClickEntity = me;
}
#include "dialog.qh"
CLASS(XonoticQuitDialog, XonoticDialog)
METHOD(XonoticQuitDialog, fill, void(entity));
+ METHOD(XonoticQuitDialog, draw, void(entity));
ATTRIB(XonoticQuitDialog, title, string, _("Quit"));
ATTRIB(XonoticQuitDialog, tooltip, string, _("Quit the game"));
ATTRIB(XonoticQuitDialog, color, vector, SKINCOLOR_DIALOG_QUIT);
ATTRIB(XonoticQuitDialog, rows, float, 3);
ATTRIB(XonoticQuitDialog, columns, float, 2);
ATTRIB(XonoticQuitDialog, name, string, "Quit");
+ ATTRIB(XonoticQuitDialog, disconnectButton, entity);
ENDCLASS(XonoticQuitDialog)
KEYBIND_DEF("toggleconsole" , _("enter console"));
string console_shortcut = strcat(translate_key("SHIFT"), "+", translate_key("ESCAPE"));
KEYBIND_SPECIAL_DEF(console_shortcut, _("enter console"));
- KEYBIND_DEF("disconnect" , _("disconnect"));
- KEYBIND_DEF("menu_showquitdialog" , _("quit"));
+ KEYBIND_DEF("menu_showquitdialog" , _("disconnect / quit"));
KEYBIND_EMPTY_LINE();
KEYBIND_HEADER(_("Teamplay"));
#include "dialog_credits.qh"
#include "dialog_quit.qh"
-#include "dialog_disconnect.qh"
-
-
-
void MainWindow_draw(entity me)
{
SUPER(MainWindow).draw(me);
DialogOpenButton_Click_withCoords(NULL, me.dialogToShow, '0 0 0', eX * conwidth + eY * conheight);
me.dialogToShow = NULL;
}
-
- //-------------------------------------
- // 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)
// main dialogs/windows
me.mainNexposee = n = NEW(XonoticNexposee);
-
+
/*
if(checkextension("DP_GECKO_SUPPORT"))
{
n.setNexposee(n, i, '0.1 0.1 0', SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
}
*/
-
+
i = NEW(XonoticSingleplayerDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
n.setNexposee(n, i, SKINPOSITION_DIALOG_CREDITS, SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
n.pullNexposee(n, i, eY * (SKINHEIGHT_TITLE * SKINFONTSIZE_TITLE / conheight));
- //Disconnect dialog at center of screen (between credits and quit)
- i = NEW(XonoticDisconnectDialog);
- i.configureDialog(i);
- 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);
- n.pullNexposee(n, i, eY * (SKINHEIGHT_TITLE * SKINFONTSIZE_TITLE / conheight));
- me.disconnectDialog = i;
-
i = NEW(XonoticQuitDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
me.moveItemAfter(me, n, NULL);
me.initializeDialog(me, n);
- me.disconnectDialogVisibility = 1;
if(cvar_string("_cl_name") == cvar_defstring("_cl_name"))
me.dialogToShow = me.firstRunDialog;
ATTRIB(MainWindow, demostartconfirmDialog, entity);
ATTRIB(MainWindow, demotimeconfirmDialog, entity);
ATTRIB(MainWindow, resetDialog, entity);
- ATTRIB(MainWindow, disconnectDialog, entity);
- ATTRIB(MainWindow, disconnectDialogVisibility, float, 1);
ENDCLASS(MainWindow)