summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qcommon/common.c1
-rw-r--r--src/ui/ui_main.c5
-rw-r--r--ui/drop.menu126
-rw-r--r--ui/menus.txt1
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" }