[nexuiz-commits] r8678 - in trunk/data/qcsrc/server: . vehicles
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Feb 27 13:26:56 EST 2010
Author: div0
Date: 2010-02-27 13:26:56 -0500 (Sat, 27 Feb 2010)
New Revision: 8678
Modified:
trunk/data/qcsrc/server/cheats.qc
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/cl_weaponsystem.qc
trunk/data/qcsrc/server/miscfunctions.qc
trunk/data/qcsrc/server/vehicles/racer.qc
trunk/data/qcsrc/server/vehicles/spiderbot.qc
Log:
get rid of lots of prydon cursor trace use, only tZork's vehicles are left
Modified: trunk/data/qcsrc/server/cheats.qc
===================================================================
--- trunk/data/qcsrc/server/cheats.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cheats.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -290,7 +290,8 @@
// howmany
effectnum = particleeffectnum(argv(1));
f = stof(argv(2));
- start = (1-f) * self.origin + f * self.cursor_trace_endpos;
+ crosshair_trace(self);
+ start = (1-f) * self.origin + f * trace_endpos;
end = stov(argv(3));
f = stof(argv(4));
pointparticles(effectnum, start, end, f);
@@ -395,7 +396,10 @@
if(argc == 4)
setorigin(e.aiment, stov(argv(2)));
else
- setorigin(e.aiment, self.cursor_trace_endpos);
+ {
+ crosshair_trace(self);
+ setorigin(e.aiment, trace_endpos);
+ }
e.enemy = spawn();
e.enemy.classname = "dragbox_corner_2";
@@ -403,7 +407,7 @@
setmodel(e.enemy, "models/marker.md3");
e.enemy.skin = 1;
setsize(e.enemy, '0 0 0', '0 0 0');
- end = normalize(self.cursor_trace_start - e.aiment.origin);
+ end = normalize(self.origin + self.view_ofs - e.aiment.origin);
end_x = (end_x > 0) * 2 - 1;
end_y = (end_y > 0) * 2 - 1;
end_z = (end_z > 0) * 2 - 1;
@@ -442,7 +446,8 @@
setorigin(e, stov(argv(2)));
else
{
- setorigin(e, self.cursor_trace_endpos + normalize(self.cursor_trace_start - self.cursor_trace_endpos));
+ crosshair_trace(self);
+ setorigin(e, trace_endpos + normalize(self.origin + self.view_ofs - trace_endpos));
move_out_of_solid(e);
}
@@ -461,10 +466,11 @@
case "drag_remove":
IS_CHEAT(0, argc, 0);
RandomSelection_Init();
+ crosshair_trace(self);
for(e = world; (e = find(e, classname, "dragbox_box")); )
- RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+ RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
for(e = world; (e = find(e, classname, "dragpoint")); )
- RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+ RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
if(RandomSelection_chosen_ent)
{
remove(RandomSelection_chosen_ent.killindicator.killindicator);
@@ -482,10 +488,11 @@
if(argc == 2)
{
RandomSelection_Init();
+ crosshair_trace(self);
for(e = world; (e = find(e, classname, "dragbox_box")); )
- RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+ RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
for(e = world; (e = find(e, classname, "dragpoint")); )
- RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+ RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
if(RandomSelection_chosen_ent)
{
if(substring(argv(1), 0, 1) == "*")
@@ -721,20 +728,23 @@
{
if(Drag_CanDrag(self))
if(self.BUTTON_DRAG)
- if(self.cursor_trace_ent)
- if(Drag_IsDraggable(self.cursor_trace_ent))
+ {
+ crosshair_trace(self);
+ if(trace_ent)
+ if(Drag_IsDraggable(trace_ent))
switch(0)
{
default:
IS_CHEAT(0, 0, CHRAME_DRAG);
- if(self.cursor_trace_ent.draggedby)
- Drag_Finish(self.cursor_trace_ent.draggedby);
- if(self.cursor_trace_ent.tag_entity)
- detach_sameorigin(self.cursor_trace_ent);
- Drag_Begin(self, self.cursor_trace_ent, self.cursor_trace_endpos);
+ if(trace_ent.draggedby)
+ Drag_Finish(trace_ent.draggedby);
+ if(trace_ent.tag_entity)
+ detach_sameorigin(trace_ent);
+ Drag_Begin(self, trace_ent, trace_endpos);
DID_CHEAT();
break;
}
+ }
}
END_CHEAT_FUNCTION();
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_client.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -1292,6 +1292,8 @@
stuffcmd(e, "\nin_bindmap 0 0\n");
if(g_race || g_cts)
stuffcmd(e, "cl_cmd settemp cl_movecliptokeyboard 2\n");
+ if(cvar("g_antilag") == 3) // client side hitscan
+ stuffcmd(e, "cl_cmd settemp cl_prydoncursor -1\n");
/*
* we no longer need to stuff this. Remove this comment block if you feel
* 2.3 and higher (or was it 2.2.3?) don't need these any more
Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_impulse.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -140,7 +140,8 @@
sprint(self, "personal waypoint spawned at location\n");
break;
case 31:
- wp = WaypointSprite_DeployPersonal("waypoint", self.cursor_trace_endpos);
+ crosshair_trace(self);
+ wp = WaypointSprite_DeployPersonal("waypoint", trace_endpos);
if(wp)
{
WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
@@ -183,7 +184,8 @@
sprint(self, "HERE spawned at location\n");
break;
case 35:
- wp = WaypointSprite_DeployFixed("here", FALSE, self.cursor_trace_endpos);
+ crosshair_trace(self);
+ wp = WaypointSprite_DeployFixed("here", FALSE, trace_endpos);
if(wp)
{
WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
@@ -213,7 +215,8 @@
sprint(self, "DANGER spawned at location\n");
break;
case 38:
- wp = WaypointSprite_DeployFixed("danger", FALSE, self.cursor_trace_endpos);
+ crosshair_trace(self);
+ wp = WaypointSprite_DeployFixed("danger", FALSE, trace_endpos);
if(wp)
{
WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_player.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -811,9 +811,10 @@
makevectors(self.v_angle); // sets v_forward
// 1. cursor trace is always right
- if(self.cursor_trace_ent && self.cursor_trace_ent.classname == "player" && !self.cursor_trace_ent.deadflag)
+ crosshair_trace(self);
+ if(trace_ent && trace_ent.classname == "player" && !trace_ent.deadflag)
{
- selected = self.cursor_trace_ent;
+ selected = trace_ent;
}
else
{
Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -208,6 +208,7 @@
}
else if(cvar("g_antilag") == 3) // client side hitscan
{
+ // this part MUST use prydon cursor
if (ent.cursor_trace_ent) // client was aiming at someone
if (ent.cursor_trace_ent != ent) // just to make sure
if (ent.cursor_trace_ent.takedamage) // and that person is killable
Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/miscfunctions.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -3,6 +3,13 @@
void droptofloor();
.vector dropped_origin;
+void traceline_antilag (entity source, vector v1, vector v2, float nomonst, entity forent, float lag);
+void crosshair_trace(entity pl)
+{
+ makevectors(pl.v_angle);
+ traceline_antilag(pl, pl.origin + pl.view_ofs, pl.origin + pl.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl));
+}
+
void() spawnfunc_info_player_deathmatch; // needed for the other spawnpoints
void() spawnpoint_use;
float race_GetTime(float pos);
@@ -440,11 +447,17 @@
{
float p, p1, p2;
float n;
+ vector cursor;
+ entity cursor_ent;
string escape;
string replacement;
p = 0;
n = 7;
+ crosshair_trace(self);
+ cursor = trace_endpos;
+ cursor_ent = trace_ent;
+
while (1) {
if (n < 1)
break; // too many replacements
@@ -480,7 +493,7 @@
else if (escape == "l")
replacement = NearestLocation(self.origin);
else if (escape == "y")
- replacement = NearestLocation(self.cursor_trace_endpos);
+ replacement = NearestLocation(cursor);
else if (escape == "d")
replacement = NearestLocation(self.death_origin);
else if (escape == "w") {
@@ -498,8 +511,8 @@
else if (self.items & IT_CELLS) replacement = "cells";
else replacement = "batteries"; // ;)
} else if (escape == "x") {
- replacement = self.cursor_trace_ent.netname;
- if (!replacement || !self.cursor_trace_ent)
+ replacement = cursor_ent.netname;
+ if (!replacement || !cursor_ent)
replacement = "nothing";
} else if (escape == "p") {
if (self.last_selected_player)
Modified: trunk/data/qcsrc/server/vehicles/racer.qc
===================================================================
--- trunk/data/qcsrc/server/vehicles/racer.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/vehicles/racer.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -200,6 +200,7 @@
setorigin(bolt, gettaginfo(self,gettagindex(self,tagname)));
vector v;
+ // FIXME this uses prydon cursor
v = normalize(self.owner.cursor_trace_endpos - bolt.origin);
v_forward_z = v_z * 0.5;
//v_forward_z *= 0.5;
@@ -454,6 +455,7 @@
/*
// for homing rockets
+ // FIXME this uses prydon cursor
if(self.owner.cursor_trace_ent)
{
self.tur_head.gun1 = self.owner.cursor_trace_ent;
Modified: trunk/data/qcsrc/server/vehicles/spiderbot.qc
===================================================================
--- trunk/data/qcsrc/server/vehicles/spiderbot.qc 2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/vehicles/spiderbot.qc 2010-02-27 18:26:56 UTC (rev 8678)
@@ -70,6 +70,7 @@
self.solid = SOLID_BBOX;
self.touch = spiderbot_rocket_touch;
olddir = normalize(self.velocity);
+ // FIXME this uses prydon cursor
//newdir = normalize(self.owner.cursor_trace_endpos - self.origin);
newdir = normalize(self.pos1 - self.origin);
newdir += randomvec() * cvar("g_vehicle_spiderbot_rocket_noise");
@@ -129,6 +130,7 @@
rocket.think = spiderbot_rocket_think;
rocket.flags = FL_PROJECTILE;
rocket.solid = SOLID_NOT;
+ // FIXME this uses prydon cursor
rocket.pos1 = self.owner.cursor_trace_endpos;
CSQCProjectile(rocket, FALSE, PROJECTILE_ROCKET, FALSE); // no culling, has fly sound
More information about the nexuiz-commits
mailing list