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