diff options
author | Tim Angus <tim@ngus.net> | 2006-07-31 22:00:04 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2006-07-31 22:00:04 +0000 |
commit | d721051b549269e3b4cdfa82846facbb1b2272bd (patch) | |
tree | 37496491e20053193481d46b1524cbeb77bd0acb | |
parent | bd235d1ed7984e4f7625174cc7bcdd3ae7b25c92 (diff) |
* Reconnect dialog upon server disconnect (bug #2805 tjw)
-rw-r--r-- | src/qcommon/common.c | 1 | ||||
-rw-r--r-- | src/ui/ui_main.c | 5 | ||||
-rw-r--r-- | ui/drop.menu | 126 | ||||
-rw-r--r-- | ui/menus.txt | 1 |
4 files changed, 132 insertions, 1 deletions
diff --git a/src/qcommon/common.c b/src/qcommon/common.c index a33eb6fd..cc105ee8 100644 --- a/src/qcommon/common.c +++ b/src/qcommon/common.c @@ -255,6 +255,7 @@ void QDECL Com_Error( int code, const char *fmt, ... ) { } } #endif + Cvar_Set("com_errorCode", va("%i", code)); // when we are running automated scripts, make sure we // know if anything failed diff --git a/src/ui/ui_main.c b/src/ui/ui_main.c index 735d0b62..b323322e 100644 --- a/src/ui/ui_main.c +++ b/src/ui/ui_main.c @@ -5587,7 +5587,10 @@ void _UI_SetActiveMenu( uiMenuCommand_t menu ) { trap_Cvar_VariableStringBuffer("com_errorMessage", buf, sizeof(buf)); if (strlen(buf)) { if (!ui_singlePlayerActive.integer) { - Menus_ActivateByName("error_popmenu"); + if( trap_Cvar_VariableValue( "com_errorCode" ) == ERR_SERVERDISCONNECT ) + Menus_ActivateByName("drop_popmenu"); + else + Menus_ActivateByName("error_popmenu"); } else { trap_Cvar_Set("com_errorMessage", ""); } diff --git a/ui/drop.menu b/ui/drop.menu new file mode 100644 index 00000000..0db22649 --- /dev/null +++ b/ui/drop.menu @@ -0,0 +1,126 @@ +#include "ui/menudef.h" + +{ + \\ ERROR \\ + + menuDef + { + name "drop_popmenu" + visible 0 + fullscreen 0 + rect 158 80 320 320 + focusColor 1 .75 0 1 + style 1 + border 1 + popup + onClose { uiScript clearError } + onOpen { } + onESC + { + play "sound/misc/menu1.wav"; + close drop_popmenu; + open main + } + + + itemDef + { + name window + rect 10 15 300 320 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 1 + visible 1 + decoration + + border WINDOW_BORDER_FULL + borderSize 1.0 + borderColor 0.5 0.5 0.5 1 + } + + itemDef + { + name dropinfo + rect 0 50 320 20 + text "Disconnected:" + textalign 1 + textstyle 6 + textscale .333 + textalignx 160 + textaligny 23 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef + { + name dropinfo + rect 60 80 200 270 + type ITEM_TYPE_TEXT + style 1 + textstyle 3 + autowrapped + cvar "com_errorMessage" + textalign ITEM_ALIGN_CENTER + textalignx 100 + textaligny 23 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + // BUTTON // + + + itemDef + { + name exit + text "OK" + type 1 + textscale .25 + group grpControlbutton + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + rect 120 295 35 26 + textalign 1 + textalignx 22 + textaligny 20 + forecolor 1 1 1 1 + backcolor .37 .1 .1 1 + visible 1 + action + { + play "sound/misc/menu1.wav"; + close drop_popmenu; + open main + } + } + + itemDef + { + name reconnect + text "Reconnect" + type 1 + textscale .25 + group grpControlbutton + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + rect 165 295 55 26 + textalign 1 + textalignx 22 + textaligny 20 + forecolor 1 1 1 1 + backcolor .37 .1 .1 1 + visible 1 + action + { + close drop_popmenu; + exec "reconnect"; + } + } + } +} + + diff --git a/ui/menus.txt b/ui/menus.txt index 753fb953..3fa3dcf6 100644 --- a/ui/menus.txt +++ b/ui/menus.txt @@ -12,6 +12,7 @@ loadMenu { "ui/quit.menu" } loadMenu { "ui/addfilter.menu" } loadMenu { "ui/error.menu" } + loadMenu { "ui/drop.menu" } loadMenu { "ui/serverinfo.menu" } loadMenu { "ui/findplayer.menu" } loadMenu { "ui/quitcredit.menu" } |