r4649 - in trunk/data/qcsrc: client common menu menu/item menu/nexuiz
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Oct 7 02:02:51 EDT 2008
Author: div0
Date: 2008-10-07 02:02:50 -0400 (Tue, 07 Oct 2008)
New Revision: 4649
Added:
trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c
Modified:
trunk/data/qcsrc/client/waypointsprites.qc
trunk/data/qcsrc/common/util.qc
trunk/data/qcsrc/common/util.qh
trunk/data/qcsrc/menu/classes.c
trunk/data/qcsrc/menu/item/slider.c
trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c
trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c
trunk/data/qcsrc/menu/nexuiz/mainwindow.c
trunk/data/qcsrc/menu/skin-customizables.inc
Log:
team radar menu controls
Modified: trunk/data/qcsrc/client/waypointsprites.qc
===================================================================
--- trunk/data/qcsrc/client/waypointsprites.qc 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/client/waypointsprites.qc 2008-10-07 06:02:50 UTC (rev 4649)
@@ -45,6 +45,7 @@
v4 = hotspot + '0 1 0' * sz_y;
// rotate them, and make them absolute
+ rot = -rot; // rotate by the opposite angle, as our coordinate system is reversed
v1 = rotate(v1, rot) + org;
v2 = rotate(v2, rot) + org;
v3 = rotate(v3, rot) + org;
@@ -149,13 +150,13 @@
{
// RIGHT edge
d = d * (0.5 / f1);
- rot = 1;
+ rot = 3;
}
else
{
// LEFT edge
d = d * (-0.5 / f1);
- rot = 3;
+ rot = 1;
}
}
else
Modified: trunk/data/qcsrc/common/util.qc
===================================================================
--- trunk/data/qcsrc/common/util.qc 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/common/util.qc 2008-10-07 06:02:50 UTC (rev 4649)
@@ -805,3 +805,17 @@
cvar_set("settemp_list", "0");
}
#endif
+
+float almost_equals(float a, float b)
+{
+ float eps;
+ eps = (max(a, -a) + max(b, -b)) * 0.001;
+ if(a - b < eps && b - a < eps)
+ return TRUE;
+ return FALSE;
+}
+
+float almost_in_bounds(float a, float b, float c)
+{
+ return almost_equals(b, median(a, b, c));
+}
Modified: trunk/data/qcsrc/common/util.qh
===================================================================
--- trunk/data/qcsrc/common/util.qh 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/common/util.qh 2008-10-07 06:02:50 UTC (rev 4649)
@@ -96,3 +96,6 @@
#endif
#define FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(x) void reference_##x() { x = x; }
+
+float almost_equals(float a, float b);
+float almost_in_bounds(float a, float b, float c);
Modified: trunk/data/qcsrc/menu/classes.c
===================================================================
--- trunk/data/qcsrc/menu/classes.c 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/menu/classes.c 2008-10-07 06:02:50 UTC (rev 4649)
@@ -67,3 +67,4 @@
#include "nexuiz/credits.c"
#include "nexuiz/dialog_multiplayer_playersetup_weapons.c"
#include "nexuiz/weaponslist.c"
+#include "nexuiz/dialog_multiplayer_playersetup_radar.c"
Modified: trunk/data/qcsrc/menu/item/slider.c
===================================================================
--- trunk/data/qcsrc/menu/item/slider.c 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/menu/item/slider.c 2008-10-07 06:02:50 UTC (rev 4649)
@@ -56,9 +56,9 @@
}
string valueToTextSlider(entity me, float val)
{
- if(val < me.valueMin) return "";
- if(val > me.valueMax) return "";
- return ftos_decimals(val * me.valueDisplayMultiplier, me.valueDigits);
+ if(almost_in_bounds(me.valueMin, val, me.valueMax))
+ return ftos_decimals(val * me.valueDisplayMultiplier, me.valueDigits);
+ return "";
}
void configureSliderVisualsSlider(entity me, float sz, float theAlign, float theTextSpace, string gfx)
{
@@ -205,7 +205,7 @@
if(me.disabled)
draw_alpha *= me.disabledAlpha;
draw_ButtonPicture('0 0 0', strcat(me.src, "_s"), eX * (1 - me.textSpace) + eY, me.color2, 1);
- if(me.value == median(me.valueMin, me.value, me.valueMax))
+ if(almost_in_bounds(me.valueMin, me.value, me.valueMax))
{
controlLeft = (me.value - me.valueMin) / (me.valueMax - me.valueMin) * (1 - me.textSpace - me.controlWidth);
if(me.disabled)
Modified: trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c 2008-10-07 06:02:50 UTC (rev 4649)
@@ -73,7 +73,7 @@
me.TD(me, 1, 2, e = makeNexuizSlider(2, 16, 0.5, "cl_zoomfactor"));
me.TR(me);
sl = makeNexuizSlider(1, 8, 0.5, "cl_zoomspeed");
- me.TD(me, 1, 2.8, e = makeNexuizSliderCheckBox(-1, 1, sl, "Zoom speed:"));
+ me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(-1, 1, sl, "Zoom speed:"));
me.TD(me, 1, 2, sl);
me.TR(me);
me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "cl_autoswitch", "Auto switch weapons on pickup"));
@@ -118,25 +118,13 @@
me.TD(me, 1, 2.8, e = makeNexuizCheckBox(0, "sbar_hudselector", "Use alternate HUD layout"));
setDependent(e, "viewsize", 0, 110);
me.TR(me);
- me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Show Binds:"));
- me.TD(me, 1, 2, e = makeNexuizTextSlider("sbar_showbinds"));
- e.addValue(e, "None", "0");
- e.addValue(e, "Short", "1");
- e.addValue(e, "Long", "2");
- e.configureNexuizTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Show names:"));
- me.TD(me, 1, 2, e = makeNexuizTextSlider("cl_shownames"));
- e.addValue(e, "Never", "0");
- e.addValue(e, "Team games", "1");
- e.addValue(e, "Always", "2");
- e.configureNexuizTextSliderValues(e);
+ me.TDempty(me, 0.5);
+ me.TD(me, 1, 2, e = makeNexuizButton("Radar & Waypoints...", '0 0 0'));
+ e.onClick = DialogOpenButton_Click;
+ e.onClickEntity = main.radarDialog;
+ me.TDempty(me, 0.5);
me.TR(me);
- me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Show waypoints:"));
- me.TD(me, 1, 2, e = makeNexuizTextSlider("cl_hidewaypoints"));
- e.addValue(e, "Players", "1");
- e.addValue(e, "All", "0");
- e.configureNexuizTextSliderValues(e);
me.TR(me);
me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Network speed:"));
me.TD(me, 1, 2, e = makeNexuizTextSlider("_cl_rate"));
Added: trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c (rev 0)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c 2008-10-07 06:02:50 UTC (rev 4649)
@@ -0,0 +1,111 @@
+#ifdef INTERFACE
+CLASS(NexuizRadarDialog) EXTENDS(NexuizDialog)
+ METHOD(NexuizRadarDialog, toString, string(entity))
+ METHOD(NexuizRadarDialog, fill, void(entity))
+ METHOD(NexuizRadarDialog, showNotify, void(entity))
+ ATTRIB(NexuizRadarDialog, title, string, "Radar & Waypoints")
+ ATTRIB(NexuizRadarDialog, color, vector, SKINCOLOR_DIALOG_RADAR)
+ ATTRIB(NexuizRadarDialog, intendedWidth, float, 0.6)
+ ATTRIB(NexuizRadarDialog, rows, float, 17)
+ ATTRIB(NexuizRadarDialog, columns, float, 4)
+ENDCLASS(NexuizRadarDialog)
+#endif
+
+#ifdef IMPLEMENTATION
+void showNotifyNexuizRadarDialog(entity me)
+{
+ loadAllCvars(me);
+}
+string toStringNexuizRadarDialog(entity me)
+{
+ return "XXX";
+}
+void fillNexuizRadarDialog(entity me)
+{
+ entity e, sl;
+ me.TR(me);
+ me.TD(me, 1, 4, makeNexuizTextLabel(0, "Radar settings:"));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Position:"));
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_position", "0 0", "Top left"));
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_position", "0.5 0", "Top middle"));
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_position", "1 0", "Top right"));
+ me.TR(me);
+ me.TDempty(me, 1);
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_position", "0.5 0", "Middle left"));
+ me.TDempty(me, 1);
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_position", "0.5 1", "Middle right"));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Size:"));
+ me.TD(me, 1, 3, e = makeNexuizTextSlider("cl_teamradar_size"));
+ e.addValue(e, "96x96", "96 96");
+ e.addValue(e, "128x96", "128 96");
+ e.addValue(e, "128x128", "128 128");
+ e.addValue(e, "192x144", "192 144");
+ e.addValue(e, "192x192", "192 192");
+ e.addValue(e, "256x192", "256 192");
+ e.addValue(e, "256x256", "256 256");
+ e.configureNexuizTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Zoom:"));
+ me.TD(me, 1, 1.5, e = makeNexuizRadioButton(1, "cl_teamradar_zoommode", "0", "Zoom key zooms out"));
+ me.TD(me, 1, 1.5, e = makeNexuizRadioButton(1, "cl_teamradar_zoommode", "1", "Zoom key zooms in"));
+ me.TR(me);
+ me.TDempty(me, 1);
+ me.TD(me, 1, 1.5, e = makeNexuizRadioButton(1, "cl_teamradar_zoommode", "2", "Always zoomed in"));
+ me.TD(me, 1, 1.5, e = makeNexuizRadioButton(1, "cl_teamradar_zoommode", "3", "Always zoomed out"));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Zoomed scale:"));
+ setDependent(e, "cl_teamradar_zoommode", 0, 2);
+ me.TD(me, 1, 3, e = makeNexuizTextSlider("cl_teamradar_scale"));
+ e.addValue(e, "1:2048", "2048");
+ e.addValue(e, "1:3072", "3072");
+ e.addValue(e, "1:4096", "4096");
+ e.addValue(e, "1:6144", "6144");
+ e.addValue(e, "1:8192", "8192");
+ e.configureNexuizTextSliderValues(e);
+ setDependent(e, "cl_teamradar_zoommode", 0, 2);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1.8, e = makeNexuizTextLabel(0, "Rotation (UP direction):"));
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_rotation", "4", "North"));
+ me.TDempty(me, 1);
+ me.TR(me);
+ me.TDempty(me, 1);
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_rotation", "1", "West"));
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_rotation", "0", "Forward"));
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_rotation", "3", "East"));
+ me.TR(me);
+ me.TDempty(me, 2);
+ me.TD(me, 1, 1, e = makeNexuizRadioButton(1, "cl_teamradar_rotation", "2", "South"));
+ me.TDempty(me, 1);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ sl = makeNexuizSlider(0.1, 1.0, 0.01, "cl_teamradar_background_alpha");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1, 1, sl, "Background:"));
+ me.TD(me, 1, 3, sl);
+ me.TR(me);
+ me.TR(me);
+ me.TD(me, 1, 4, makeNexuizTextLabel(0, "Waypoint settings:"));
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Show names:"));
+ me.TD(me, 1, 3, e = makeNexuizTextSlider("cl_shownames"));
+ e.addValue(e, "Never", "0");
+ e.addValue(e, "Team games", "1");
+ e.addValue(e, "Always", "2");
+ e.configureNexuizTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 3.8, e = makeNexuizCheckBox(1, "cl_hidewaypoints", "Show base waypoints"));
+ 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;
+}
+
+#endif
Modified: trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_settings_input.c 2008-10-07 06:02:50 UTC (rev 4649)
@@ -62,6 +62,13 @@
me.TR(me);
me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "con_closeontoggleconsole", "\"enter console\" also closes"));
me.TR(me);
+ me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Show binds:"));
+ me.TD(me, 1, 2, e = makeNexuizTextSlider("sbar_showbinds"));
+ e.addValue(e, "None", "0");
+ e.addValue(e, "Short", "1");
+ e.addValue(e, "Long", "2");
+ e.configureNexuizTextSliderValues(e);
+ me.TR(me);
if(cvar_type("vid_dgamouse") & CVAR_TYPEFLAG_ENGINE)
me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "vid_dgamouse", "Turn off OS mouse acceleration"));
else if(cvar_type("apple_mouse_noaccel") & CVAR_TYPEFLAG_ENGINE)
Modified: trunk/data/qcsrc/menu/nexuiz/mainwindow.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/mainwindow.c 2008-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/menu/nexuiz/mainwindow.c 2008-10-07 06:02:50 UTC (rev 4649)
@@ -6,6 +6,7 @@
ATTRIB(MainWindow, mapInfoDialog, entity, NULL)
ATTRIB(MainWindow, userbindEditDialog, entity, NULL)
ATTRIB(MainWindow, winnerDialog, entity, NULL)
+ ATTRIB(MainWindow, radarDialog, entity, NULL)
ATTRIB(MainWindow, fadedAlpha, float, SKINALPHA_BEHIND)
ENDCLASS(MainWindow)
#endif
@@ -48,6 +49,10 @@
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+ me.radarDialog = i = spawnNexuizRadarDialog();
+ 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-10-06 17:52:54 UTC (rev 4648)
+++ trunk/data/qcsrc/menu/skin-customizables.inc 2008-10-07 06:02:50 UTC (rev 4649)
@@ -48,6 +48,7 @@
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');
+ SKINVECTOR(COLOR_DIALOG_RADAR, '0.7 0.7 1');
// nexposee positions of windows (they are the scale transformation
// centers, NOT the actual positions of the windows!)
More information about the nexuiz-commits
mailing list