From 1e6fc1911ab38fd77f54263eebdfa60a7daec7cc Mon Sep 17 00:00:00 2001 From: div0 Date: Thu, 17 Jan 2008 10:43:18 +0000 Subject: [PATCH] show selected mutators already in creategame dialog git-svn-id: svn://svn.icculus.org/nexuiz/trunk@3162 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/menu-div0test/item/label.c | 21 +++++++++--- .../nexuiz/dialog_multiplayer_create.c | 5 ++- .../dialog_multiplayer_create_mutators.c | 34 ++++++++++++++++++- 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/data/qcsrc/menu-div0test/item/label.c b/data/qcsrc/menu-div0test/item/label.c index cabfa6957..2f6ed2fd4 100644 --- a/data/qcsrc/menu-div0test/item/label.c +++ b/data/qcsrc/menu-div0test/item/label.c @@ -17,6 +17,7 @@ CLASS(Label) EXTENDS(Item) ATTRIB(Label, colorL, vector, '1 1 1') ATTRIB(Label, disabled, float, 0) ATTRIB(Label, disabledAlpha, float, 0.3) + ATTRIB(Label, textEntity, entity, NULL) ENDCLASS(Label) #endif @@ -28,14 +29,14 @@ string toStringLabel(entity me) void setTextLabel(entity me, string txt) { me.text = txt; - me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - me.realFontSize_x * draw_TextWidth(me.text, 0)) + me.keepspaceLeft; + me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(me.realFontSize_x * draw_TextWidth(me.text, 0), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft; } void resizeNotifyLabel(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize) { // absSize_y is height of label me.realFontSize_y = me.fontSize / absSize_y; me.realFontSize_x = me.fontSize / absSize_x; - me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - me.realFontSize_x * draw_TextWidth(me.text, 0)) + me.keepspaceLeft; + me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(me.realFontSize_x * draw_TextWidth(me.text, 0), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft; me.realOrigin_y = 0.5 * (1 - me.realFontSize_y); } void configureLabelLabel(entity me, string txt, float sz, float algn) @@ -46,15 +47,25 @@ void configureLabelLabel(entity me, string txt, float sz, float algn) } void drawLabel(entity me) { + string t; if(me.disabled) draw_alpha *= me.disabledAlpha; + + if(me.textEntity) + { + t = me.textEntity.toString(me.textEntity); + me.realOrigin_x = me.align * (1 - me.keepspaceLeft - me.keepspaceRight - min(me.realFontSize_x * draw_TextWidth(t, 0), (1 - me.keepspaceLeft - me.keepspaceRight))) + me.keepspaceLeft; + } + else + t = me.text; + if(me.fontSize) - if(me.text) + if(t) { if(me.allowCut) - draw_Text(me.realOrigin, draw_TextShortenToWidth(me.text, 1 / me.realFontSize_x, 0), me.realFontSize, me.colorL, me.alpha, 0); + draw_Text(me.realOrigin, draw_TextShortenToWidth(t, (1 - me.keepspaceLeft - me.keepspaceRight) / me.realFontSize_x, 0), me.realFontSize, me.colorL, me.alpha, 0); else - draw_Text(me.realOrigin, me.text, me.realFontSize, me.colorL, me.alpha, 0); + draw_Text(me.realOrigin, t, me.realFontSize, me.colorL, me.alpha, 0); } } #endif diff --git a/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c b/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c index 4c346282e..16b715522 100644 --- a/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c +++ b/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c @@ -144,10 +144,13 @@ void fillNexuizServerCreateTab(entity me) me.TD(me, 1, 0.7, e = makeNexuizInputBox(1, "bot_suffix")); me.TR(me); me.TR(me); - me.TD(me, 1, 3, e = makeNexuizButton("Mutators...", '0 0 0')); + me.TD(me, 1, 1, e = makeNexuizButton("Mutators...", '0 0 0')); e.onClick = DialogOpenButton_Click; e.onClickEntity = main.mutatorsDialog; main.mutatorsDialog.refilterEntity = me.mapListBox; + me.TD(me, 1, 2, e0 = makeNexuizTextLabel(0, string_null)); + e0.textEntity = main.mutatorsDialog; + e0.allowCut = 1; me.gotoXY(me, me.rows - 1, 0); me.TD(me, 1, me.columns, e = makeNexuizButton("Start!", '0 0 0')); diff --git a/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c b/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c index 78438ae85..9b3257f01 100644 --- a/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c +++ b/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c @@ -1,5 +1,6 @@ #ifdef INTERFACE CLASS(NexuizMutatorsDialog) EXTENDS(NexuizDialog) + METHOD(NexuizMutatorsDialog, toString, string(entity)) METHOD(NexuizMutatorsDialog, fill, void(entity)) METHOD(NexuizMutatorsDialog, showNotify, void(entity)) METHOD(NexuizMutatorsDialog, close, void(entity)) @@ -17,6 +18,37 @@ void showNotifyNexuizMutatorsDialog(entity me) { loadAllCvars(me); } +string toStringNexuizMutatorsDialog(entity me) +{ + string s; + s = ""; + if(cvar("g_instagib")) + s = strcat(s, ", InstaGib"); + if(cvar("g_minstagib")) + s = strcat(s, ", MinstaGib"); + if(cvar("g_nixnex")) + s = strcat(s, ", NixNex"); + if(cvar("g_rocketarena")) + s = strcat(s, ", RL arena"); + if(cvar("sv_gravity") < 800) + s = strcat(s, ", Low gravity"); + if(cvar("g_cloaked")) + s = strcat(s, ", Cloaked"); + if(cvar("g_footsteps")) + s = strcat(s, ", Steps"); + if(cvar("g_grappling_hook")) + s = strcat(s, ", Hook"); + if(cvar("g_laserguides_missile")) + s = strcat(s, ", LG missiles"); + if(cvar("g_midair")) + s = strcat(s, ", Mid-air"); + if(cvar("g_vampire")) + s = strcat(s, ", Vampire"); + if(s == "") + return "None"; + else + return substring(s, 2, strlen(s) - 2); +} void fillNexuizMutatorsDialog(entity me) { entity e, s; @@ -56,7 +88,7 @@ void fillNexuizMutatorsDialog(entity me) s = makeNexuizSlider(80, 400, 40, "sv_gravity"); s.valueDigits = 0; s.valueDisplayMultiplier = 0.125; // show gravity in percent - me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(800, 0, s, "Low gravity")); + me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(800, 1, s, "Low gravity")); me.TD(me, 1, 3, s); me.gotoXY(me, me.rows - 1, 0); -- 2.39.2