r3705 - trunk/data/qcsrc/menu/nexuiz

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Jun 17 02:06:54 EDT 2008


Author: div0
Date: 2008-06-17 02:06:52 -0400 (Tue, 17 Jun 2008)
New Revision: 3705

Modified:
   trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mapinfo.c
   trunk/data/qcsrc/menu/nexuiz/maplist.c
Log:
cleanup of victim's patch for a Play button


Modified: trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mapinfo.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mapinfo.c	2008-06-13 15:07:18 UTC (rev 3704)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mapinfo.c	2008-06-17 06:06:52 UTC (rev 3705)
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(NexuizMapInfoDialog) EXTENDS(NexuizDialog)
 	METHOD(NexuizMapInfoDialog, fill, void(entity))
-	METHOD(NexuizMapInfoDialog, loadMapInfo, void(entity, float))
+	METHOD(NexuizMapInfoDialog, loadMapInfo, void(entity, float, entity))
 	ATTRIB(NexuizMapInfoDialog, title, string, "Map Information")
 	ATTRIB(NexuizMapInfoDialog, color, vector, SKINCOLOR_DIALOG_MAPINFO)
 	ATTRIB(NexuizMapInfoDialog, intendedWidth, float, 0.85)
@@ -36,9 +36,10 @@
 #endif
 
 #ifdef IMPLEMENTATION
-void loadMapInfoNexuizMapInfoDialog(entity me, float i)
+void loadMapInfoNexuizMapInfoDialog(entity me, float i, entity mlb)
 {
 	me.currentMapIndex = i;
+	me.startButton.onClickEntity = mlb;
 	MapInfo_Get_ByID(i);
 
 	if(me.currentMapBSPName)
@@ -140,8 +141,14 @@
 			me.descriptionLabel = e;
 
 	me.gotoRC(me, me.rows - 1, 0);
-		me.TD(me, 1, me.columns, e = makeNexuizButton("OK", '0 0 0'));
+		me.TDempty(me, 0.5);
+
+		me.TD(me, 1, me.columns - 5.5, e = makeNexuizButton("OK", '0 0 0'));
 			e.onClick = Dialog_Close;
 			e.onClickEntity = me;
+		me.TD(me, 1, me.columns - 5.5, me.startButton = e = makeNexuizButton("Play", '0 0 0'));
+			me.startButton.onClick = MapList_LoadMap;
+			me.startButton.onClickEntity = NULL; // filled later
+		me.TDempty(me, 0.5);
 }
 #endif

Modified: trunk/data/qcsrc/menu/nexuiz/maplist.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/maplist.c	2008-06-13 15:07:18 UTC (rev 3704)
+++ trunk/data/qcsrc/menu/nexuiz/maplist.c	2008-06-17 06:06:52 UTC (rev 3705)
@@ -54,6 +54,7 @@
 	me.configureNexuizMapList(me);
 	return me;
 }
+
 void configureNexuizMapListNexuizMapList(entity me)
 {
 	me.configureNexuizListBox(me);
@@ -129,6 +130,7 @@
 	me.checkMarkSize = (eX * (me.itemAbsSize_y / me.itemAbsSize_x) + eY) * 0.5;
 	me.checkMarkOrigin = eY + eX * (me.columnPreviewOrigin + me.columnPreviewSize) - me.checkMarkSize;
 }
+
 void clickListBoxItemNexuizMapList(entity me, float i, vector where)
 {
 	if(where_x <= me.columnPreviewOrigin + me.columnPreviewSize)
@@ -144,7 +146,7 @@
 					{
 						// DOUBLE CLICK!
 						// pop up map info screen
-						main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, i);
+						main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, i, me);
 						DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * i - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
 						return;
 					}
@@ -152,6 +154,7 @@
 				me.lastClickedTime = time;
 			}
 }
+
 void drawListBoxItemNexuizMapList(entity me, float i, vector absSize, float isSelected)
 {
 	// layout: Ping, Map name, Map name, NP, TP, MP
@@ -221,6 +224,7 @@
 		me.setSelected(me, 0);
 	}
 }
+
 void MapList_All(entity btn, entity me)
 {
 	float i;
@@ -232,19 +236,35 @@
 	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);
 }
+
 void MapList_LoadMap(entity btn, entity me)
 {
 	string m;
-	if(me.selectedItem >= me.nItems || me.selectedItem < 0)
+	float i;
+
+	i = me.selectedItem;
+
+	if(btn.parent.instanceOfNexuizMapInfoDialog)
+	{
+		i = btn.parent.currentMapIndex;
+		Dialog_Close(btn, btn.parent);
+	}
+
+	if(i >= me.nItems || i < 0)
 		return;
-	m = MapInfo_BSPName_ByID(me.selectedItem);
+
+	m = MapInfo_BSPName_ByID(i);
 	if not(m)
+	{
+		print("Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n");
 		return;
+	}
 	if(MapInfo_CheckMap(m))
 	{
 		localcmd("\ndisconnect\nwait\nmaxplayers $menu_maxplayers\ng_maplist_shufflenow\nhostname \"", strdecolorize(cvar_string("_cl_name")), "'s Nexuiz server\"\n");
@@ -252,7 +272,7 @@
 	}
 	else
 	{
-		print("Huh? Can't play this. Refiltering so this won't happen again.\n");
+		print("Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n");
 		me.refilter(me);
 	}
 }
@@ -263,7 +283,7 @@
 	if(scan == K_ENTER)
 	{
 		// pop up map info screen
-		main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, me.selectedItem);
+		main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, me.selectedItem, me);
 		DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * me.selectedItem - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
 	}
 	else if(scan == K_SPACE)
@@ -316,4 +336,5 @@
 		return keyDownListBox(me, scan, ascii, shift);
 	return 1;
 }
+
 #endif




More information about the nexuiz-commits mailing list