r2303 - in trunk/data: . models models/sprites qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Apr 13 17:58:26 EDT 2007


Author: div0
Date: 2007-04-13 17:58:26 -0400 (Fri, 13 Apr 2007)
New Revision: 2303

Added:
   trunk/data/models/sprites/
   trunk/data/models/sprites/bluebase.sp2
   trunk/data/models/sprites/bluebase.tga
   trunk/data/models/sprites/danger.sp2
   trunk/data/models/sprites/danger.tga
   trunk/data/models/sprites/flagcarrier.sp2
   trunk/data/models/sprites/flagcarrier.tga
   trunk/data/models/sprites/helpme.sp2
   trunk/data/models/sprites/helpme.tga
   trunk/data/models/sprites/here.sp2
   trunk/data/models/sprites/here.tga
   trunk/data/models/sprites/redbase.sp2
   trunk/data/models/sprites/redbase.tga
   trunk/data/models/sprites/template.svg
   trunk/data/models/sprites/waypoint.sp2
   trunk/data/models/sprites/waypoint.tga
Modified:
   trunk/data/default.cfg
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/cl_impulse.qc
   trunk/data/qcsrc/server/cl_player.qc
   trunk/data/qcsrc/server/ctf.qc
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/g_world.qc
   trunk/data/qcsrc/server/miscfunctions.qc
   trunk/data/qcsrc/server/progs.src
Log:
waypoint sprites system mainly for CTF; currently with placeholder sprite TGAs with text


Modified: trunk/data/default.cfg
===================================================================
--- trunk/data/default.cfg	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/default.cfg	2007-04-13 21:58:26 UTC (rev 2303)
@@ -823,3 +823,28 @@
 set g_chat_flood_burst_team 0            // /
 set g_chat_flood_notify_flooder 1        // when 0, the flooder still can see his own message
 set g_chat_teamcolors 0                  // colorize nicknames in team color for chat
+
+set g_waypointsprite_normdistance 512
+set g_waypointsprite_minscale 1
+set g_waypointsprite_minalpha 0.2
+set g_waypointsprite_distancealphaexponent 2
+set g_waypointsprite_timealphaexponent 1
+set g_waypointsprite_deployed_lifetime 10
+set g_waypointsprite_deadlifetime 2
+set g_waypointsprite_limitedrange 5120
+set g_waypointsprite_stuffbinds 0
+alias "g_waypointsprite_personal"       "impulse 30"
+alias "g_waypointsprite_personal_p"     "impulse 31"
+alias "g_waypointsprite_personal_d"     "impulse 32"
+alias "g_waypointsprite_team_helpme"    "impulse 33"
+alias "g_waypointsprite_team_here"      "impulse 34"
+alias "g_waypointsprite_team_here_p"    "impulse 35"
+alias "g_waypointsprite_team_here_d"    "impulse 36"
+alias "g_waypointsprite_team_danger"    "impulse 37"
+alias "g_waypointsprite_team_danger_p"  "impulse 38"
+alias "g_waypointsprite_team_danger_d"  "impulse 39"
+alias "g_waypointsprite_clear_personal" "impulse 47"
+alias "g_waypointsprite_clear"          "impulse 48"
+alias "g_waypointsprite_toggle"         "impulse 49"
+// key for that?
+seta cl_hidewaypoints 0

Added: trunk/data/models/sprites/bluebase.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/bluebase.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/bluebase.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/bluebase.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/danger.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/danger.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/danger.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/danger.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/flagcarrier.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/flagcarrier.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/flagcarrier.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/flagcarrier.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/helpme.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/helpme.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/helpme.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/helpme.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/here.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/here.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/here.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/here.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/redbase.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/redbase.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/redbase.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/redbase.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/template.svg
===================================================================
--- trunk/data/models/sprites/template.svg	                        (rev 0)
+++ trunk/data/models/sprites/template.svg	2007-04-13 21:58:26 UTC (rev 2303)
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="128"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.44"
+   version="1.0"
+   inkscape:export-filename="bluebase.tga"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:docname="template.svg"
+   sodipodi:docbase="/home/rpolzer/software/games/nexuiz/data/models/sprites">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="black"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="375"
+     inkscape:cy="75.53288"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     width="512px"
+     height="128px"
+     showgrid="true"
+     gridspacingx="8px"
+     gridspacingy="8px"
+     gridempspacing="8"
+     inkscape:grid-points="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="849"
+     inkscape:window-height="579"
+     inkscape:window-x="198"
+     inkscape:window-y="66" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <path
+       style="opacity:1;fill:blue;fill-opacity:1;stroke:black;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
+       d="M 256,126 L 280,102 L 264,102 L 264,62 L 248,62 L 248,102 L 232,102 L 256,126 z "
+       id="path1872"
+       sodipodi:nodetypes="cccccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:56px;font-weight:bold;text-align:center;text-anchor:middle;opacity:1;fill:blue;fill-opacity:1;stroke:black;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
+       x="253.97656"
+       y="49.957031"
+       id="text1874"><tspan
+         sodipodi:role="line"
+         id="tspan1876"
+         x="253.97656"
+         y="49.957031">BLUE BASE</tspan></text>
+  </g>
+</svg>

Added: trunk/data/models/sprites/waypoint.sp2
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/waypoint.sp2
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/models/sprites/waypoint.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/models/sprites/waypoint.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/cl_client.qc	2007-04-13 21:58:26 UTC (rev 2303)
@@ -287,6 +287,8 @@
 		WriteEntity(MSG_ONE, self);
 	}
 
+	WaypointSprite_PlayerDead();
+
 	DropAllRunes(self);
 
 	if(self.flagcarried)
@@ -746,6 +748,9 @@
 	
 	FixClientCvars(self);
 
+	// waypoint sprites
+	WaypointSprite_InitClient(self);
+
 	// Wazat's grappling hook
 	SetGrappleHookBindings();
 
@@ -824,6 +829,8 @@
 		self.teambubbleentity = world;
 	}
 
+	WaypointSprite_PlayerGone();
+
 	DropAllRunes(self);
 
 	if(self.flagcarried)
@@ -1590,7 +1597,6 @@
 		CheckRules_Player();
 		UpdateChatBubble();
 		UpdateTeamBubble();
-		if (self.deadflag == DEAD_NO)
 		if (self.impulse)
 			ImpulseCommands ();
 		if (intermission_running)

Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/cl_impulse.qc	2007-04-13 21:58:26 UTC (rev 2303)
@@ -63,27 +63,32 @@
 	if (imp >= 1 && imp <= 12)
 	{
 		// weapon switching impulses
-		if (imp <= 9)
-			W_SwitchWeapon (imp);
-		else if (imp == 10)
-			W_NextWeapon ();
-		else if (imp == 12)
-			W_PreviousWeapon ();
-		else if (imp == 11) // last weapon
-			W_SwitchWeapon (self.cnt);
+		if(self.deadflag == DEAD_NO)
+		{
+			if (imp <= 9)
+				W_SwitchWeapon (imp);
+			else if (imp == 10)
+				W_NextWeapon ();
+			else if (imp == 12)
+				W_PreviousWeapon ();
+			else if (imp == 11) // last weapon
+				W_SwitchWeapon (self.cnt);
+		}
+		else
+			self.impulse = imp; // retry in next frame
 	}
 	else if (imp >= 13 && imp <= 16)
 	{
 		if (cvar("sv_cheats"))
 		{
-			if (imp == 13)
+			if (imp == 13 && self.deadflag == DEAD_NO)
 			{
 				makevectors (self.v_angle);
 				self.velocity = self.velocity + v_forward * 300;
 				CopyBody(1);
 				self.velocity = self.velocity - v_forward * 300;
 			}
-			else if (imp == 14)
+			else if (imp == 14 && self.deadflag == DEAD_NO)
 				CopyBody(0);
 			else if (imp == 15)
 			{
@@ -108,11 +113,88 @@
 	// throw weapon
 	else if (imp == 17)
 	{
-		if (self.weapon != WEP_LASER
-			&& !cvar("g_minstagib") && !cvar("g_instagib")
-			&& !cvar("g_rocketarena") && !cvar("g_lms") && cvar("g_pickup_items") && !cvar("g_nixnex"))
-			W_ThrowWeapon(self.velocity * 0.5 + v_forward * 750, '0 0 0', TRUE);
+		if(self.deadflag == DEAD_NO)
+		{
+			if (self.weapon != WEP_LASER
+				&& !cvar("g_minstagib") && !cvar("g_instagib")
+				&& !cvar("g_rocketarena") && !cvar("g_lms") && cvar("g_pickup_items") && !cvar("g_nixnex"))
+				W_ThrowWeapon(self.velocity * 0.5 + v_forward * 750, '0 0 0', TRUE);
+		}
 	}
+	// deploy waypoints
+	else if (imp >= 30 && imp <= 49)
+	{
+		if(imp == 30)
+		{
+			WaypointSprite_DeployPersonal("waypoint", self.origin);
+			sprint(self, "personal waypoint spawned at location\n");
+		}
+		else if(imp == 31)
+		{
+			WaypointSprite_DeployPersonal("waypoint", self.cursor_trace_endpos);
+			sprint(self, "personal waypoint spawned at crosshair\n");
+		}
+		else if(imp == 32 && vlen(self.death_origin))
+		{
+			WaypointSprite_DeployPersonal("waypoint", self.death_origin);
+			sprint(self, "personal waypoint spawned at death location\n");
+		}
+		else if(imp == 33 && self.deadflag == DEAD_NO)
+		{
+			if(teams_matter)
+				WaypointSprite_Attach("helpme", TRUE);
+			sprint(self, "HELP ME attached\n");
+		}
+		else if(imp == 34)
+		{
+			WaypointSprite_DeployFixed("here", FALSE, self.origin);
+			sprint(self, "HERE spawned at location\n");
+		}
+		else if(imp == 35)
+		{
+			WaypointSprite_DeployFixed("here", FALSE, self.cursor_trace_endpos);
+			sprint(self, "HERE spawned at crosshair\n");
+		}
+		else if(imp == 36 && vlen(self.death_origin))
+		{
+			WaypointSprite_DeployFixed("here", FALSE, self.death_origin);
+			sprint(self, "HERE spawned at death location\n");
+		}
+		else if(imp == 37)
+		{
+			WaypointSprite_DeployFixed("danger", FALSE, self.origin);
+			sprint(self, "DANGER spawned at location\n");
+		}
+		else if(imp == 38)
+		{
+			WaypointSprite_DeployFixed("danger", FALSE, self.cursor_trace_endpos);
+			sprint(self, "DANGER spawned at crosshair\n");
+		}
+		else if(imp == 39 && vlen(self.death_origin))
+		{
+			WaypointSprite_DeployFixed("danger", FALSE, self.death_origin);
+			sprint(self, "DANGER spawned at death location\n");
+		}
+		else if(imp == 47)
+		{
+			WaypointSprite_ClearPersonal();
+			sprint(self, "personal waypoint cleared\n");
+		}
+		else if(imp == 48)
+		{
+			WaypointSprite_ClearOwned();
+			sprint(self, "all waypoints cleared\n");
+		}
+		else if(imp == 49)
+		{
+			self.cvar_cl_hidewaypoints = !(self.cvar_cl_hidewaypoints);
+			sprint(self, "fixed waypoints now ");
+			if(self.cvar_cl_hidewaypoints)
+				sprint(self, "OFF\n");
+			else
+				sprint(self, "ON\n");
+		}
+	}
 	else
 	{
 		if (cvar("sv_cheats"))
@@ -130,11 +212,11 @@
 				traceline(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * 65536, FALSE, self);
 				sprint(self, strcat("distance: ", ftos(fabs(vlen(trace_endpos - (self.origin + self.view_ofs)))), "\n"));
 			}
-			else if(imp == 42)
+			else if(imp == 6*9)
 			{
 				CampaignLevelWarp(cvar("_warplevel"));
 			}
-			else if (imp == 99)
+			else if (imp == 99 && self.deadflag == DEAD_NO)
 			{
 				self.items = IT_LASER | IT_UZI | IT_SHOTGUN | IT_GRENADE_LAUNCHER | IT_ELECTRO | IT_CRYLINK | IT_NEX | IT_HAGAR | IT_ROCKET_LAUNCHER;
 				self.ammo_shells = 999;

Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/cl_player.qc	2007-04-13 21:58:26 UTC (rev 2303)
@@ -285,6 +285,8 @@
 	{
 		self.deaths += 1;
 
+		// clear waypoints
+		WaypointSprite_PlayerDead();
 		// become fully visible
 		self.alpha = 1;
 		// clear selected player display

Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/ctf.qc	2007-04-13 21:58:26 UTC (rev 2303)
@@ -71,7 +71,10 @@
 {
 	if (e.owner)
 	if (e.owner.flagcarried == e)
+	{
+		WaypointSprite_DetachCarrier(e.owner);
 		e.owner.flagcarried = world;
+	}
 	e.owner = world;
 	RegenFlag(e);
 };
@@ -92,6 +95,7 @@
 		return;
 	}
 	bprint(p.netname, "^7 lost the ", e.netname, "\n");
+	WaypointSprite_DetachCarrier(p);
 	LogCTF("dropped", p.team, p.flagcarried);
 
 	setattachment(e, world, "");
@@ -221,6 +225,7 @@
 				UpdateFrags(head, cvar("g_ctf_flagscore_capture_team"));
 
 		sound (self, CHAN_AUTO, self.noise2, 1, ATTN_NONE);
+		WaypointSprite_DetachCarrier(other);
 		RegenFlag (other.flagcarried);
 		other.flagcarried = world;
 		other.next_take_time = time + 1;
@@ -251,6 +256,7 @@
 		self.movetype = MOVETYPE_NONE;
 		setorigin(self, FLAG_CARRY_POS);
 		setattachment(self, other, "");
+		WaypointSprite_AttachCarrier("flagcarrier", other);
 
 		return;
 	}
@@ -290,6 +296,7 @@
 			self.movetype = MOVETYPE_NONE;	// flag must have MOVETYPE_NONE here, otherwise it will drop through the floor...
 			setorigin(self, FLAG_CARRY_POS);
 			setattachment(self, other, "");
+			WaypointSprite_AttachCarrier("flagcarrier", other);
 		}
 	}
 };
@@ -425,6 +432,9 @@
 	//	self.glow_size = 50;
 
 	self.effects = self.effects | EF_FULLBRIGHT | EF_LOWPRECISION;
+	droptofloor();
+
+	WaypointSprite_SpawnFixed("redbase", self.origin + '0 0 37');
 };
 
 /*QUAKED item_flag_team2 (0 0.5 0.8) (-48 -48 -24) (48 48 64)
@@ -478,6 +488,9 @@
 	//	self.glow_size = 50;
 
 	self.effects = self.effects | EF_FULLBRIGHT | EF_LOWPRECISION;
+	droptofloor();
+
+	WaypointSprite_SpawnFixed("bluebase", self.origin + '0 0 37');
 };
 
 

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/defs.qh	2007-04-13 21:58:26 UTC (rev 2303)
@@ -261,6 +261,7 @@
 .float cvar_cl_nogibs;
 .float cvar_scr_centertime;
 .float cvar_cl_shownames;
+.float cvar_cl_hidewaypoints;
 .string cvar_g_nexuizversion;
 
 .float version_nagtime;

Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/g_world.qc	2007-04-13 21:58:26 UTC (rev 2303)
@@ -364,6 +364,9 @@
 		CampaignPreInit();
 
 	InitGameplayMode();
+
+	WaypointSprite_Init();
+
 	//if (cvar("g_domination"))
 	//	dom_init();
 
@@ -729,6 +732,14 @@
 			return TRUE;
 		}
 	}
+	if(cvar_string("quit_and_redirect") != "")
+	{
+		entity head;
+		FOR_EACH_REALCLIENT(head)
+			stuffcmd(head, strcat("\nconnect ", cvar_string("quit_and_redirect"), "\n"));
+		localcmd("wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; quit\n");
+		return TRUE;
+	}
 	if (cvar("samelevel")) // if samelevel is set, stay on same level
 	{
 		// this does not work because it tries to exec maps/nexdm01.mapcfg (which doesn't exist, it should be trying maps/dm_nexdm01.mapcfg for example)

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2007-04-13 21:58:26 UTC (rev 2303)
@@ -358,6 +358,7 @@
 }
 void GetCvars(float f)
 {
+	GetCvars_handleFloat(f, cvar_cl_hidewaypoints, "cl_hidewaypoints");
 	GetCvars_handleFloat(f, cvar_cl_zoomfactor, "cl_zoomfactor");
 	GetCvars_handleFloat(f, cvar_cl_zoomspeed, "cl_zoomspeed");
 	GetCvars_handleFloat(f, cvar_cl_playerdetailreduction, "cl_playerdetailreduction");

Modified: trunk/data/qcsrc/server/progs.src
===================================================================
--- trunk/data/qcsrc/server/progs.src	2007-04-13 21:50:29 UTC (rev 2302)
+++ trunk/data/qcsrc/server/progs.src	2007-04-13 21:58:26 UTC (rev 2303)
@@ -14,6 +14,8 @@
 
 miscfunctions.qc
 
+waypointsprites.qc
+
 // general bot utility functions and management
 bots.qc
 




More information about the nexuiz-commits mailing list