From d73df583223f307e81fe6ffe9a5c763a52fad2a5 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 29 May 2009 21:05:24 +0000 Subject: [PATCH] adv server settings git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6792 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/menu/classes.c | 1 + .../menu/nexuiz/dialog_multiplayer_create.c | 10 ++- .../dialog_multiplayer_create_advanced.c | 63 +++++++++++++++++++ data/qcsrc/menu/nexuiz/mainwindow.c | 5 ++ data/qcsrc/menu/skin-customizables.inc | 1 + 5 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c diff --git a/data/qcsrc/menu/classes.c b/data/qcsrc/menu/classes.c index 660f0d25a..0ac994349 100644 --- a/data/qcsrc/menu/classes.c +++ b/data/qcsrc/menu/classes.c @@ -52,6 +52,7 @@ #include "nexuiz/dialog_quit.c" #include "nexuiz/dialog_multiplayer_create.c" #include "nexuiz/dialog_multiplayer_create_mutators.c" +#include "nexuiz/dialog_multiplayer_create_advanced.c" #include "nexuiz/dialog_multiplayer_create_mapinfo.c" #include "nexuiz/gametypebutton.c" #include "nexuiz/maplist.c" diff --git a/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c b/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c index 846962f4c..eab128e9c 100644 --- a/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c +++ b/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c @@ -131,9 +131,6 @@ void fillNexuizServerCreateTab(entity me) me.TD(me, 1, 0.7, e = makeNexuizInputBox(1, "bot_suffix")); setDependent(e, "bot_number", 0, -1); me.TR(me); - me.TR(me); - me.TD(me, 1, 3, e = makeNexuizCheckBoxEx(2, 0, "g_antilag", "AntiLag")); - me.TR(me); me.TR(me); me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Map voting:")); me.TD(me, 1, 2, e = makeNexuizTextSlider("g_maplist_votable")); @@ -151,6 +148,13 @@ void fillNexuizServerCreateTab(entity me) me.TD(me, 1, 3, e = makeNexuizCheckBoxEx(0.5, 0, "sv_vote_simple_majority_factor", "Simple majority wins vcall")); me.TR(me); me.TR(me); + me.TDempty(me, 0.5); + me.TD(me, 1, 2, e = makeNexuizButton("Advanced settings...", '0 0 0')); + e.onClick = DialogOpenButton_Click; + e.onClickEntity = main.advancedDialog; + main.advancedDialog.refilterEntity = me.mapListBox; + me.TR(me); + me.TR(me); me.TD(me, 1, 1, e = makeNexuizButton("Mutators...", '0 0 0')); e.onClick = DialogOpenButton_Click; e.onClickEntity = main.mutatorsDialog; diff --git a/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c b/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c new file mode 100644 index 000000000..52fcba1be --- /dev/null +++ b/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c @@ -0,0 +1,63 @@ +#ifdef INTERFACE +CLASS(NexuizAdvancedDialog) EXTENDS(NexuizDialog) + METHOD(NexuizAdvancedDialog, fill, void(entity)) + METHOD(NexuizAdvancedDialog, showNotify, void(entity)) + METHOD(NexuizAdvancedDialog, close, void(entity)) + ATTRIB(NexuizAdvancedDialog, title, string, "Advanced server settings") + ATTRIB(NexuizAdvancedDialog, color, vector, SKINCOLOR_DIALOG_ADVANCED) + ATTRIB(NexuizAdvancedDialog, intendedWidth, float, 0.5) + ATTRIB(NexuizAdvancedDialog, rows, float, 13) + ATTRIB(NexuizAdvancedDialog, columns, float, 3) + ATTRIB(NexuizAdvancedDialog, refilterEntity, entity, NULL) +ENDCLASS(NexuizAdvancedDialog) +#endif + +#ifdef IMPLEMENTATION +void showNotifyNexuizAdvancedDialog(entity me) +{ + loadAllCvars(me); +} + +void fillNexuizAdvancedDialog(entity me) +{ + entity e; + me.TR(me); + me.TD(me, 1, 1.4, makeNexuizTextLabel(0, "Game settings:")); + me.TR(me); + me.TD(me, 1, 1.4, e = makeNexuizCheckBox(0, "sv_spectate", "Allow spectating")); + me.TR(me); + me.TD(me, 1, 1.4, e = makeNexuizTextLabel(0, "Spawn shield:")); + me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 15, 0.5, "g_spawnshieldtime")); + me.TR(me); + me.TD(me, 1, 1.4, e = makeNexuizTextLabel(0, "Start delay:")); + me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 30, 0.5, "g_start_delay")); + me.TR(me); + me.TR(me); + me.TD(me, 1, 1.4, e = makeNexuizTextLabel(0, "Game speed:")); + me.TD(me, 1, 1.6, e = makeNexuizSlider(0.5, 2.0, 0.1, "slowmo")); + me.TR(me); + me.TD(me, 1, 1.4, e = makeNexuizCheckBoxEx(2, 0, "g_antilag", "AntiLag")); + me.TR(me); + me.TR(me); + me.TD(me, 1, 1.4, makeNexuizTextLabel(0, "Teamplay settings:")); + me.TR(me); + me.TD(me, 1, 1.4, e = makeNexuizTextLabel(0, "Friendly fire scale:")); + me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 1.0, 0.05, "g_friendlyfire")); + me.TR(me); + me.TDempty(me, 0.2); + me.TD(me, 1, 1.4, e = makeNexuizTextLabel(0, "Mirror damage:")); + me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 1.0, 0.05, "g_mirrordamage")); + + me.gotoRC(me, me.rows - 1, 0); + me.TD(me, 1, me.columns, e = makeNexuizButton("OK", '0 0 0')); + e.onClick = Dialog_Close; + e.onClickEntity = me; +} + +void closeNexuizAdvancedDialog(entity me) +{ + if(me.refilterEntity) + me.refilterEntity.refilter(me.refilterEntity); + closeDialog(me); +} +#endif diff --git a/data/qcsrc/menu/nexuiz/mainwindow.c b/data/qcsrc/menu/nexuiz/mainwindow.c index d6012de52..c6088469a 100644 --- a/data/qcsrc/menu/nexuiz/mainwindow.c +++ b/data/qcsrc/menu/nexuiz/mainwindow.c @@ -1,6 +1,7 @@ #ifdef INTERFACE CLASS(MainWindow) EXTENDS(ModalController) METHOD(MainWindow, configureMainWindow, void(entity)) + ATTRIB(MainWindow, advancedDialog, entity, NULL) ATTRIB(MainWindow, mutatorsDialog, entity, NULL) ATTRIB(MainWindow, weaponsDialog, entity, NULL) ATTRIB(MainWindow, mapInfoDialog, entity, NULL) @@ -32,6 +33,10 @@ void configureMainWindowMainWindow(entity me) i.configureDialog(i); me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z); + me.advancedDialog = i = spawnNexuizAdvancedDialog(); + i.configureDialog(i); + me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z); + me.mutatorsDialog = i = spawnNexuizMutatorsDialog(); i.configureDialog(i); me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z); diff --git a/data/qcsrc/menu/skin-customizables.inc b/data/qcsrc/menu/skin-customizables.inc index c78d7bd30..aca87b42a 100644 --- a/data/qcsrc/menu/skin-customizables.inc +++ b/data/qcsrc/menu/skin-customizables.inc @@ -45,6 +45,7 @@ SKINBEGIN SKINVECTOR(COLOR_DIALOG_SETTINGS, '0.7 0.7 1'); SKINVECTOR(COLOR_DIALOG_TEAMSELECT, '1 1 1'); SKINVECTOR(COLOR_DIALOG_QUIT, '1 0 0'); + SKINVECTOR(COLOR_DIALOG_ADVANCED, '0.7 0.7 1'); SKINVECTOR(COLOR_DIALOG_MUTATORS, '0.7 0.7 1'); SKINVECTOR(COLOR_DIALOG_MAPINFO, '0.7 0.7 1'); SKINVECTOR(COLOR_DIALOG_USERBIND, '0.7 0.7 1'); -- 2.39.2