r2974 - in trunk/data/qcsrc/menu-div0test: . item nexuiz

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Nov 16 16:39:29 EST 2007


Author: div0
Date: 2007-11-16 16:39:28 -0500 (Fri, 16 Nov 2007)
New Revision: 2974

Modified:
   trunk/data/qcsrc/menu-div0test/draw.qc
   trunk/data/qcsrc/menu-div0test/draw.qh
   trunk/data/qcsrc/menu-div0test/item/listbox.c
   trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c
   trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c
   trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c
Log:
preload all pictures; actually edit g_maplist; add all/none buttons


Modified: trunk/data/qcsrc/menu-div0test/draw.qc
===================================================================
--- trunk/data/qcsrc/menu-div0test/draw.qc	2007-11-16 15:51:55 UTC (rev 2973)
+++ trunk/data/qcsrc/menu-div0test/draw.qc	2007-11-16 21:39:28 UTC (rev 2974)
@@ -57,6 +57,12 @@
 	return v;
 }
 
+void draw_PreloadPicture(string pic)
+{
+	pic = draw_UseSkinFor(pic);
+	precache_pic(pic);
+}
+
 void draw_Picture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha)
 {
 	pic = draw_UseSkinFor(pic);

Modified: trunk/data/qcsrc/menu-div0test/draw.qh
===================================================================
--- trunk/data/qcsrc/menu-div0test/draw.qh	2007-11-16 15:51:55 UTC (rev 2973)
+++ trunk/data/qcsrc/menu-div0test/draw.qh	2007-11-16 21:39:28 UTC (rev 2974)
@@ -6,6 +6,7 @@
 void draw_setMousePointer(string pic);
 void draw_drawMousePointer(vector where);
 
+void draw_PreloadPicture(string pic);
 void draw_ButtonPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha);
 void draw_VertButtonPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha);
 void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha, vector theBorderSize);

Modified: trunk/data/qcsrc/menu-div0test/item/listbox.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/listbox.c	2007-11-16 15:51:55 UTC (rev 2973)
+++ trunk/data/qcsrc/menu-div0test/item/listbox.c	2007-11-16 21:39:28 UTC (rev 2974)
@@ -171,8 +171,8 @@
 		// and give it a nice click event
 		if(me.nItems > 0)
 		{
-			absSize = boxToGlobalSize(me.size, eX * (1 - me.controlWidth) + eY);
-			me.clickListBoxItem(me, me.selectedItem, globalToBox(pos, eX * (me.selectedItem * me.itemHeight - me.scrollPos), absSize));
+			absSize = boxToGlobalSize(me.size, eX * (1 - me.controlWidth) + eY * me.itemHeight);
+			me.clickListBoxItem(me, me.selectedItem, globalToBox(pos, eY * (me.selectedItem * me.itemHeight - me.scrollPos), eX * (1 - me.controlWidth) + eY * me.itemHeight));
 		}
 	}
 	me.pressed = 0;

Modified: trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c	2007-11-16 15:51:55 UTC (rev 2973)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c	2007-11-16 21:39:28 UTC (rev 2974)
@@ -23,6 +23,7 @@
 	me.configureDialog(me);
 	return me;
 }
+
 void fillNexuizServerCreateTab(entity me)
 {
 	entity e, e0;
@@ -56,8 +57,16 @@
 	me.TR(me);
 		me.TD(me, 1, 3, e = makeNexuizTextLabel(0, "Map list:"));
 	me.TR(me);
-		me.TD(me, me.rows - 5, 3, e = makeNexuizMapList());
+		me.TD(me, me.rows - 6, 3, e = makeNexuizMapList());
 		me.mapListBox = e;
+	me.gotoXY(me, me.rows - 2, 0);
+		me.TD(me, 1, 1, e = makeNexuizButton("All", '0 0 0'));
+			e.onClick = MapList_All;
+			e.onClickEntity = me.mapListBox;
+		me.TD(me, 1, 1, e = makeNexuizButton("None", '0 0 0'));
+			e.onClick = MapList_None;
+			e.onClickEntity = me.mapListBox;
+		me.TD(me, 1, 1, e = makeNexuizButton("Details...", '0 0 0'));
 
 	me.gotoXY(me, 3, 3.5); me.setFirstColumn(me, me.currentColumn);
 		me.TD(me, 1, 3, e = makeNexuizTextLabel(0, "Settings:"));
@@ -70,9 +79,10 @@
 		me.TD(me, 1, 2, e = makeNexuizSlider(1.0, 2000.0, 5, "fraglimit_override"));
 			me.sliderFraglimit = e;
 	me.TR(me);
-		me.TD(me, 1, 1, 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.gotoXY(me, me.rows - 1, 0);
 		me.TD(me, 1, me.columns, e = makeNexuizButton("Start!", '0 0 0'));

Modified: trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c	2007-11-16 15:51:55 UTC (rev 2973)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c	2007-11-16 21:39:28 UTC (rev 2974)
@@ -2,11 +2,13 @@
 CLASS(NexuizMutatorsDialog) EXTENDS(NexuizDialog)
 	METHOD(NexuizMutatorsDialog, fill, void(entity))
 	METHOD(NexuizMutatorsDialog, showNotify, void(entity))
+	METHOD(NexuizMutatorsDialog, close, void(entity))
 	ATTRIB(NexuizMutatorsDialog, title, string, "Mutators")
 	ATTRIB(NexuizMutatorsDialog, color, vector, SKINCOLOR_DIALOG_MUTATORS)
 	ATTRIB(NexuizMutatorsDialog, intendedWidth, float, 0.6)
 	ATTRIB(NexuizMutatorsDialog, rows, float, 8)
 	ATTRIB(NexuizMutatorsDialog, columns, float, 4)
+	ATTRIB(NexuizMutatorsDialog, refilterEntity, entity, NULL)
 ENDCLASS(NexuizMutatorsDialog)
 #endif
 
@@ -55,4 +57,11 @@
 			e.onClick = Dialog_Close;
 			e.onClickEntity = me;
 }
+
+void closeNexuizMutatorsDialog(entity me)
+{
+	if(me.refilterEntity)
+		me.refilterEntity.refilter(me.refilterEntity);
+	closeDialog(me);
+}
 #endif

Modified: trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c	2007-11-16 15:51:55 UTC (rev 2973)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c	2007-11-16 21:39:28 UTC (rev 2974)
@@ -25,6 +25,8 @@
 	METHOD(NexuizMapList, g_maplistCacheQuery, float(entity, float))
 ENDCLASS(NexuizMapList)
 entity makeNexuizMapList();
+void MapList_All(entity btn, entity me);
+void MapList_None(entity btn, entity me);
 #endif
 
 #ifdef IMPLEMENTATION
@@ -47,7 +49,8 @@
 }
 void g_maplistCacheToggleNexuizMapList(entity me, float i)
 {
-	string a, b, c, s;
+	string a, b, c, s, bspname;
+	float n;
 	s = me.g_maplistCache;
 	if not(s)
 		return;
@@ -62,6 +65,20 @@
 	c = substring(s, i+1, strlen(s) - (i+1));
 	strunzone(s);
 	me.g_maplistCache = strzone(strcat(a, b, c));
+	// TODO also update the actual cvar
+	if not((bspname = MapInfo_BSPName_ByID(i)))
+		return;
+	if(b == "1")
+		cvar_set("g_maplist", strcat(bspname, " ", cvar_string("g_maplist")));
+	else
+	{
+		s = "";
+		n = tokenize(cvar_string("g_maplist"));
+		for(i = 0; i < n; ++i)
+			if(argv(i) != bspname)
+				s = strcat(s, " ", argv(i));
+		cvar_set("g_maplist", substring(s, 1, strlen(s) - 1));
+	}
 }
 
 void resizeNotifyNexuizMapList(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
@@ -86,16 +103,24 @@
 }
 void clickListBoxItemNexuizMapList(entity me, float i, vector where)
 {
-	if(i == me.lastClickedMap)
-		if(time < me.lastClickedTime + 0.3)
-		{
-			// DOUBLE CLICK!
-			// insert/remove into/from maplist
+	if(where_x <= me.columnPreviewOrigin + me.columnPreviewSize)
+	{
+		if(where_x >= 0)
 			me.g_maplistCacheToggle(me, i);
-			// TODO also update the actual cvar
-		}
-	me.lastClickedMap = i;
-	me.lastClickedTime = time;
+	}
+	if(where_x >= me.columnNameOrigin)
+		if(where_x <= 1)
+			{
+				if(i == me.lastClickedMap)
+					if(time < me.lastClickedTime + 0.3)
+					{
+						// DOUBLE CLICK!
+						// pop up map info screen
+						return;
+					}
+				me.lastClickedMap = i;
+				me.lastClickedTime = time;
+			}
 }
 void drawListBoxItemNexuizMapList(entity me, float i, vector absSize, float isSelected)
 {
@@ -138,6 +163,8 @@
 	string s;
 	MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures());
 	me.nItems = MapInfo_count;
+	for(i = 0; i < MapInfo_count; ++i)
+		draw_PreloadPicture(strcat("/maps/", MapInfo_BSPName_ByID(i)));
 	if(me.g_maplistCache)
 		strunzone(me.g_maplistCache);
 	s = "0";
@@ -156,4 +183,20 @@
 	}
 	me.g_maplistCache = strzone(s);
 }
+void MapList_All(entity btn, entity me)
+{
+	float i;
+	string s;
+	MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0); // all
+	s = "";
+	for(i = 0; i < MapInfo_count; ++i)
+		s = strcat(s, " ", MapInfo_BSPName_ByID(i));
+	cvar_set("g_maplist", substring(s, 1, strlen(s) - 1));
+	me.refilter(me);
+}
+void MapList_None(entity btn, entity me)
+{
+	cvar_set("g_maplist", "");
+	me.refilter(me);
+}
 #endif




More information about the nexuiz-commits mailing list