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