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