r4425 - in trunk/data/qcsrc: common menu menu/item menu/nexuiz server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Sep 9 02:46:06 EDT 2008
Author: div0
Date: 2008-09-09 02:46:06 -0400 (Tue, 09 Sep 2008)
New Revision: 4425
Modified:
trunk/data/qcsrc/common/util.qc
trunk/data/qcsrc/common/util.qh
trunk/data/qcsrc/menu/classes.c
trunk/data/qcsrc/menu/item/listbox.c
trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c
trunk/data/qcsrc/menu/nexuiz/mainwindow.c
trunk/data/qcsrc/menu/skin-customizables.inc
trunk/data/qcsrc/server/cl_weapons.qc
Log:
Add a weapon priority menu item
Modified: trunk/data/qcsrc/common/util.qc
===================================================================
--- trunk/data/qcsrc/common/util.qc 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/common/util.qc 2008-09-09 06:46:06 UTC (rev 4425)
@@ -640,3 +640,57 @@
makevectors(a);
}
#endif
+
+string fixPriorityList(string order, float from, float to, float complete)
+{
+ string neworder;
+ float i, n, w;
+
+ n = tokenize(order);
+ for(i = 0; i < n; ++i)
+ {
+ w = stof(argv(i));
+ if(w >= from && w <= to && w == floor(w))
+ neworder = strcat(neworder, ftos(w), " ");
+ }
+
+ if(complete)
+ {
+ n = tokenize(neworder);
+ for(w = to; w >= from; --w)
+ {
+ for(i = 0; i < n; ++i)
+ if(stof(argv(i)) == w)
+ break;
+ if(i == n) // not found
+ neworder = strcat(neworder, ftos(w), " ");
+ }
+ }
+
+ return substring(neworder, 0, strlen(neworder) - 1);
+}
+
+string swapInPriorityList(string order, float i, float j)
+{
+ string s;
+ float w, n;
+
+ n = tokenize(order);
+
+ if(i >= 0 && i < n && j >= 0 && j < n && i != j)
+ {
+ s = "";
+ for(w = 0; w < n; ++w)
+ {
+ if(w == i)
+ s = strcat(s, argv(j), " ");
+ else if(w == j)
+ s = strcat(s, argv(i), " ");
+ else
+ s = strcat(s, argv(w), " ");
+ }
+ return substring(s, 0, strlen(s) - 1);
+ }
+
+ return order;
+}
Modified: trunk/data/qcsrc/common/util.qh
===================================================================
--- trunk/data/qcsrc/common/util.qh 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/common/util.qh 2008-09-09 06:46:06 UTC (rev 4425)
@@ -73,3 +73,6 @@
#define fixedvectoangles2 vectoangles2
#define fixedvectoangles vectoangles
#endif
+
+string fixPriorityList(string pl, float from, float to, float complete);
+string swapInPriorityList(string order, float i, float j);
Modified: trunk/data/qcsrc/menu/classes.c
===================================================================
--- trunk/data/qcsrc/menu/classes.c 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/menu/classes.c 2008-09-09 06:46:06 UTC (rev 4425)
@@ -65,3 +65,5 @@
#include "nexuiz/dialog_singleplayer_winner.c"
#include "nexuiz/dialog_credits.c"
#include "nexuiz/credits.c"
+#include "nexuiz/dialog_multiplayer_playersetup_weapons.c"
+#include "nexuiz/weaponslist.c"
Modified: trunk/data/qcsrc/menu/item/listbox.c
===================================================================
--- trunk/data/qcsrc/menu/item/listbox.c 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/menu/item/listbox.c 2008-09-09 06:46:06 UTC (rev 4425)
@@ -243,18 +243,21 @@
if(me.pressed == 2)
me.mouseDrag(me, me.dragScrollPos); // simulate mouseDrag event
me.updateControlTopBottom(me);
- draw_VertButtonPicture(eX * (1 - me.controlWidth), strcat(me.src, "_s"), eX * me.controlWidth + eY, me.color2, 1);
- if(me.nItems * me.itemHeight > 1)
+ if(me.controlWidth)
{
- vector o, s;
- o = eX * (1 - me.controlWidth) + eY * me.controlTop;
- s = eX * me.controlWidth + eY * (me.controlBottom - me.controlTop);
- if(me.pressed == 1)
- draw_VertButtonPicture(o, strcat(me.src, "_c"), s, me.colorC, 1);
- else if(me.focused)
- draw_VertButtonPicture(o, strcat(me.src, "_f"), s, me.colorF, 1);
- else
- draw_VertButtonPicture(o, strcat(me.src, "_n"), s, me.color, 1);
+ draw_VertButtonPicture(eX * (1 - me.controlWidth), strcat(me.src, "_s"), eX * me.controlWidth + eY, me.color2, 1);
+ if(me.nItems * me.itemHeight > 1)
+ {
+ vector o, s;
+ o = eX * (1 - me.controlWidth) + eY * me.controlTop;
+ s = eX * me.controlWidth + eY * (me.controlBottom - me.controlTop);
+ if(me.pressed == 1)
+ draw_VertButtonPicture(o, strcat(me.src, "_c"), s, me.colorC, 1);
+ else if(me.focused)
+ draw_VertButtonPicture(o, strcat(me.src, "_f"), s, me.colorF, 1);
+ else
+ draw_VertButtonPicture(o, strcat(me.src, "_n"), s, me.color, 1);
+ }
}
draw_SetClip();
oldshift = draw_shift;
Modified: trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c 2008-09-09 06:46:06 UTC (rev 4425)
@@ -30,7 +30,7 @@
}
void fillNexuizPlayerSettingsTab(entity me)
{
- entity e, pms, sl;
+ entity e, pms, sl, e0;
float i, n;
me.TR(me);
@@ -78,7 +78,14 @@
me.TR(me);
me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "cl_autoswitch", "Auto switch weapons on pickup"));
me.TR(me);
+ me.TD(me, 1, 1, e = makeNexuizButton("Weapon priority...", '0 0 0'));
+ e.onClick = DialogOpenButton_Click;
+ e.onClickEntity = main.weaponsDialog;
+ me.TD(me, 1, 2, e0 = makeNexuizTextLabel(0, string_null));
+ e0.textEntity = main.weaponsDialog;
+ e0.allowCut = 1;
me.TR(me);
+ me.TR(me);
me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Crosshair:"));
n = 11;
for(i = 1; i <= n; ++i)
@@ -125,7 +132,6 @@
e.addValue(e, "All", "0");
e.configureNexuizTextSliderValues(e);
me.TR(me);
- me.TR(me);
me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Network speed:"));
me.TD(me, 1, 2, e = makeNexuizTextSlider("_cl_rate"));
e.addValue(e, "56k", "4000");
@@ -139,6 +145,6 @@
me.TD(me, 1, 0.64, e = makeNexuizInputBox(0, "cl_port"));
me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeNexuizCommandButton("Apply immediately", '0 0 0', "color -1 -1;name \"$_cl_name\";sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_hidewaypoints;sendcvar cl_shownames;rate $_cl_rate", COMMANDBUTTON_APPLY));
+ me.TD(me, 1, me.columns, makeNexuizCommandButton("Apply immediately", '0 0 0', "color -1 -1;name \"$_cl_name\";sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_hidewaypoints;sendcvar cl_shownames;rate $_cl_rate", COMMANDBUTTON_APPLY));
}
#endif
Modified: trunk/data/qcsrc/menu/nexuiz/mainwindow.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/mainwindow.c 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/menu/nexuiz/mainwindow.c 2008-09-09 06:46:06 UTC (rev 4425)
@@ -2,6 +2,7 @@
CLASS(MainWindow) EXTENDS(ModalController)
METHOD(MainWindow, configureMainWindow, void(entity))
ATTRIB(MainWindow, mutatorsDialog, entity, NULL)
+ ATTRIB(MainWindow, weaponsDialog, entity, NULL)
ATTRIB(MainWindow, mapInfoDialog, entity, NULL)
ATTRIB(MainWindow, userbindEditDialog, entity, NULL)
ATTRIB(MainWindow, winnerDialog, entity, NULL)
@@ -43,6 +44,10 @@
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+ me.weaponsDialog = i = spawnNexuizWeaponsDialog();
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
n = spawnNexuizNexposee();
/*
if(checkextension("DP_GECKO_SUPPORT"))
Modified: trunk/data/qcsrc/menu/skin-customizables.inc
===================================================================
--- trunk/data/qcsrc/menu/skin-customizables.inc 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/menu/skin-customizables.inc 2008-09-09 06:46:06 UTC (rev 4425)
@@ -47,6 +47,7 @@
SKINVECTOR(COLOR_DIALOG_USERBIND, '0.7 0.7 1');
SKINVECTOR(COLOR_DIALOG_SINGLEPLAYER, '1 1 0.7');
SKINVECTOR(COLOR_DIALOG_CREDITS, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_WEAPONS, '1 0.7 0.7');
// nexposee positions of windows (they are the scale transformation
// centers, NOT the actual positions of the windows!)
Modified: trunk/data/qcsrc/server/cl_weapons.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weapons.qc 2008-09-09 05:43:19 UTC (rev 4424)
+++ trunk/data/qcsrc/server/cl_weapons.qc 2008-09-09 06:46:06 UTC (rev 4425)
@@ -104,31 +104,7 @@
string W_FixWeaponOrder(string order, float complete)
{
- string neworder;
- float i, n, w;
-
- n = tokenize(order);
- for(i = 0; i < n; ++i)
- {
- w = stof(argv(i));
- if(w >= WEP_FIRST && w <= WEP_LAST && w == floor(w))
- neworder = strcat(neworder, ftos(w), " ");
- }
-
- if(complete)
- {
- n = tokenize(neworder);
- for(w = WEP_LAST; w >= WEP_FIRST; --w)
- {
- for(i = 0; i < n; ++i)
- if(stof(argv(i)) == w)
- break;
- if(i == n) // not found
- neworder = strcat(neworder, ftos(w), " ");
- }
- }
-
- return substring(neworder, 0, strlen(neworder) - 1);
+ return fixPriorityList(order, WEP_FIRST, WEP_LAST, complete);
}
string W_FixWeaponOrder_AllowIncomplete(string order)
More information about the nexuiz-commits
mailing list