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

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Dec 15 16:50:29 EST 2007


Author: div0
Date: 2007-12-15 16:50:27 -0500 (Sat, 15 Dec 2007)
New Revision: 3027

Added:
   trunk/data/qcsrc/menu-div0test/defaultskin/charmap.tga
   trunk/data/qcsrc/menu-div0test/defaultskin/charmapbutton.tga
Modified:
   trunk/data/qcsrc/menu-div0test/classes.c
   trunk/data/qcsrc/menu-div0test/item/inputbox.c
   trunk/data/qcsrc/menu-div0test/nexuiz/checkbox_slider_invalid.c
   trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c
   trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_playersetup.c
   trunk/data/qcsrc/menu-div0test/skin.qh
Log:
charmap in menu


Modified: trunk/data/qcsrc/menu-div0test/classes.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/classes.c	2007-12-15 20:01:47 UTC (rev 3026)
+++ trunk/data/qcsrc/menu-div0test/classes.c	2007-12-15 21:50:27 UTC (rev 3027)
@@ -53,3 +53,4 @@
 #include "nexuiz/playermodel.c"
 #include "nexuiz/dialog_news.c"
 #include "nexuiz/checkbox_slider_invalid.c"
+#include "nexuiz/charmap.c"

Added: trunk/data/qcsrc/menu-div0test/defaultskin/charmap.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/qcsrc/menu-div0test/defaultskin/charmap.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/qcsrc/menu-div0test/defaultskin/charmapbutton.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/qcsrc/menu-div0test/defaultskin/charmapbutton.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/data/qcsrc/menu-div0test/item/inputbox.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/inputbox.c	2007-12-15 20:01:47 UTC (rev 3026)
+++ trunk/data/qcsrc/menu-div0test/item/inputbox.c	2007-12-15 21:50:27 UTC (rev 3027)
@@ -3,6 +3,7 @@
 	METHOD(InputBox, configureInputBox, void(entity, string, float, float, string))
 	METHOD(InputBox, draw, void(entity))
 	METHOD(InputBox, setText, void(entity, string))
+	METHOD(InputBox, enterText, void(entity, string))
 	METHOD(InputBox, keyDown, float(entity, float, float, float))
 	METHOD(InputBox, mouseRelease, float(entity, vector))
 	METHOD(InputBox, mousePress, float(entity, vector))
@@ -19,6 +20,7 @@
 	ATTRIB(InputBox, dragScrollPos, vector, '0 0 0')
 	ATTRIB(InputBox, pressed, float, 0)
 	ATTRIB(InputBox, editColorCodes, float, 1)
+	ATTRIB(InputBox, forbiddenCharacters, string, "")
 	ATTRIB(InputBox, color, vector, '1 1 1')
 	ATTRIB(InputBox, colorF, vector, '1 1 1')
 ENDCLASS(InputBox)
@@ -68,14 +70,23 @@
 	return mouseDragInputBox(me, pos);
 }
 
+void enterTextInputBox(entity me, string ch)
+{
+	float i;
+	for(i = 0; i < strlen(ch); ++i)
+		if(strstrofs(me.forbiddenCharacters, substring(ch, i, 1), 0) > -1)
+			return;
+	me.setText(me, strcat(substring(me.text, 0, me.cursorPos), ch, substring(me.text, me.cursorPos, strlen(me.text) - me.cursorPos)));
+	me.cursorPos += strlen(ch);
+}
+
 float keyDownInputBox(entity me, float key, float ascii, float shift)
 {
 	me.lastChangeTime = time;
 	me.dragScrollTimer = 0;
 	if(ascii >= 32 && ascii != 127)
 	{
-		me.setText(me, strcat(substring(me.text, 0, me.cursorPos), chr(ascii), substring(me.text, me.cursorPos, strlen(me.text) - me.cursorPos)));
-		me.cursorPos += 1;
+		me.enterText(me, chr(ascii));
 		return 1;
 	}
 	switch(key)

Modified: trunk/data/qcsrc/menu-div0test/nexuiz/checkbox_slider_invalid.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/checkbox_slider_invalid.c	2007-12-15 20:01:47 UTC (rev 3026)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/checkbox_slider_invalid.c	2007-12-15 21:50:27 UTC (rev 3027)
@@ -1,6 +1,6 @@
 #ifdef INTERFACE
 CLASS(NexuizSliderCheckBox) EXTENDS(CheckBox)
-	METHOD(NexuizSliderCheckBox, configureNexuizSliderCheckBox, void(entity, float, entity, string))
+	METHOD(NexuizSliderCheckBox, configureNexuizSliderCheckBox, void(entity, float, float, entity, string))
 	METHOD(NexuizSliderCheckBox, setChecked, void(entity, float))
 	METHOD(NexuizSliderCheckBox, draw, void(entity))
 	ATTRIB(NexuizSliderCheckBox, fontSize, float, SKINFONTSIZE_NORMAL)
@@ -15,25 +15,26 @@
 
 	ATTRIB(NexuizSliderCheckBox, controlledSlider, entity, NULL)
 	ATTRIB(NexuizSliderCheckBox, offValue, float, -1)
+	ATTRIB(NexuizSliderCheckBox, inverted, float, 0)
 	ATTRIB(NexuizSliderCheckBox, savedValue, float, -1)
 ENDCLASS(NexuizSliderCheckBox)
-entity makeNexuizSliderCheckBox(float, entity, string);
+entity makeNexuizSliderCheckBox(float, float, entity, string);
 #endif
 
 #ifdef IMPLEMENTATION
-entity makeNexuizSliderCheckBox(float theOffValue, entity theControlledSlider, string theText)
+entity makeNexuizSliderCheckBox(float theOffValue, float isInverted, entity theControlledSlider, string theText)
 {
 	entity me;
 	me = spawnNexuizSliderCheckBox();
-	me.configureNexuizSliderCheckBox(me, theOffValue, theControlledSlider, theText);
+	me.configureNexuizSliderCheckBox(me, theOffValue, isInverted, theControlledSlider, theText);
 	return me;
 }
-void configureNexuizSliderCheckBoxNexuizSliderCheckBox(entity me, float theOffValue, entity theControlledSlider, string theText)
+void configureNexuizSliderCheckBoxNexuizSliderCheckBox(entity me, float theOffValue, float isInverted, entity theControlledSlider, string theText)
 {
 	me.offValue = theOffValue;
-	me.checked = 0;
+	me.inverted = isInverted;
 	me.checked = (theControlledSlider.value == theOffValue);
-	if(!me.checked)
+	if(theControlledSlider.value == median(theControlledSlider.valueMin, theControlledSlider.value, theControlledSlider.valueMax))
 		me.savedValue = theControlledSlider.value;
 	else
 		me.savedValue = theControlledSlider.valueMin; 
@@ -42,8 +43,8 @@
 }
 void drawNexuizSliderCheckBox(entity me)
 {
-	me.checked = (me.controlledSlider.value == me.offValue);
-	if(!me.checked)
+	me.checked = ((me.controlledSlider.value == me.offValue) != me.inverted);
+	if(me.controlledSlider.value == median(me.controlledSlider.valueMin, me.controlledSlider.value, me.controlledSlider.valueMax))
 		me.savedValue = me.controlledSlider.value;
 	drawCheckBox(me);
 }
@@ -52,10 +53,10 @@
 	if(me.checked == val)
 		return;
 	me.checked = val;
-	if(val)
+	if(val == me.inverted)
+		me.controlledSlider.setValue(me.controlledSlider, median(me.controlledSlider.valueMin, me.savedValue, me.controlledSlider.valueMax));
+	else
 		me.controlledSlider.setValue(me.controlledSlider, me.offValue);
-	else
-		me.controlledSlider.setValue(me.controlledSlider, me.savedValue);
 }
 
 #endif

Modified: trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c	2007-12-15 20:01:47 UTC (rev 3026)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c	2007-12-15 21:50:27 UTC (rev 3027)
@@ -9,6 +9,7 @@
 
 	ATTRIB(NexuizServerCreateTab, mapListBox, entity, NULL)
 	ATTRIB(NexuizServerCreateTab, sliderFraglimit, entity, NULL)
+	ATTRIB(NexuizServerCreateTab, sliderTimelimit, entity, NULL)
 	ATTRIB(NexuizServerCreateTab, checkboxFraglimit, entity, NULL)
 ENDCLASS(NexuizServerCreateTab)
 entity makeNexuizServerCreateTab();
@@ -79,14 +80,21 @@
 	me.gotoXY(me, 3, 3.5); me.setFirstColumn(me, me.currentColumn);
 		me.TD(me, 1, 3, e = makeNexuizTextLabel(0, "Settings:"));
 	me.TR(me);
-		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Time limit:"));
-		me.TD(me, 1, 2, e = makeNexuizSlider(1.0, 60.0, 0.5, "timelimit_override"));
+		me.sliderTimelimit = makeNexuizSlider(1.0, 60.0, 0.5, "timelimit_override");
+		me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(0, 1, me.sliderTimelimit, "Time limit:"));
+		me.TD(me, 1, 2, me.sliderTimelimit);
 	me.TR(me);
-		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Point limit:"));
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 2.8, e = makeNexuizSliderCheckBox(-1, 0, me.sliderTimelimit, "Use map specified default"));
+	me.TR(me);
+		me.sliderFraglimit = makeNexuizSlider(1.0, 2000.0, 5, "fraglimit_override");
+		me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(0, 1, me.sliderFraglimit, "Point limit:"));
 			me.checkboxFraglimit = e;
-		me.TD(me, 1, 2, e = makeNexuizSlider(1.0, 2000.0, 5, "fraglimit_override"));
-			me.sliderFraglimit = e;
+		me.TD(me, 1, 2, me.sliderFraglimit);
 	me.TR(me);
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 2.8, e = makeNexuizSliderCheckBox(-1, 0, me.sliderFraglimit, "Use map specified default"));
+	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizButton("Mutators...", '0 0 0'));
 			e.onClick = DialogOpenButton_Click;
 			e.onClickEntity = main.mutatorsDialog;

Modified: trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_playersetup.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_playersetup.c	2007-12-15 20:01:47 UTC (rev 3026)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_playersetup.c	2007-12-15 21:50:27 UTC (rev 3027)
@@ -25,7 +25,15 @@
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Player Name:"));
 		me.TD(me, 1, 2, e = makeNexuizInputBox(1, "_cl_name"));
+			e.forbiddenCharacters = "\r\n\\\""; // don't care, isn't getting saved
 	me.TR(me);
+		me.TDempty(me, 1);
+		me.TD(me, 5, 2, e = makeNexuizCharmap(e));
+	me.TR(me);
+	me.TR(me);
+	me.TR(me);
+	me.TR(me);
+	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Shirt Color:"));
 		n = 16 - !cvar("developer");
 		for(i = 0; i < n; ++i)
@@ -55,7 +63,7 @@
 		me.TD(me, 1, 2, e = makeNexuizSlider(1, 8, 0.5, "cl_zoomspeed"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 2.8, e = makeNexuizSliderCheckBox(-1, e, "Instant Zoom"));
+		me.TD(me, 1, 2.8, e = makeNexuizSliderCheckBox(-1, 0, e, "Instant Zoom"));
 	me.TR(me);
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Crosshair:"));

Modified: trunk/data/qcsrc/menu-div0test/skin.qh
===================================================================
--- trunk/data/qcsrc/menu-div0test/skin.qh	2007-12-15 20:01:47 UTC (rev 3026)
+++ trunk/data/qcsrc/menu-div0test/skin.qh	2007-12-15 21:50:27 UTC (rev 3027)
@@ -73,3 +73,6 @@
 const vector SKINCOLOR_MAPLIST_AUTHOR = '0.4 0.4 0.7';
 
 const float SKINALPHA_DISABLED = 0.2;
+
+const string SKINGFX_CHARMAP = "charmap";
+const string SKINGFX_CHARMAP_SELECTED = "charmapbutton";




More information about the nexuiz-commits mailing list