r2346 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Apr 19 05:38:47 EDT 2007
Author: div0
Date: 2007-04-19 05:38:47 -0400 (Thu, 19 Apr 2007)
New Revision: 2346
Modified:
trunk/data/qcsrc/server/bots.qc
trunk/data/qcsrc/server/cl_weaponsystem.qc
trunk/data/qcsrc/server/g_hook.qc
Log:
new attempt to fix waypoints; weapon system no
Modified: trunk/data/qcsrc/server/bots.qc
===================================================================
--- trunk/data/qcsrc/server/bots.qc 2007-04-18 20:44:05 UTC (rev 2345)
+++ trunk/data/qcsrc/server/bots.qc 2007-04-19 09:38:47 UTC (rev 2346)
@@ -587,11 +587,52 @@
w.wpflags = f;
setorigin(w, org);
setsize(w, PL_MIN + m1, PL_MAX + m2);
- move_out_of_solid(w);
- oldself = self;
- self = w;
- droptofloor();
- self = oldself;
+
+ if(!(f & WAYPOINTFLAG_GENERATED))
+ {
+ org = w.origin + '2 2 2';
+ tracebox(org, w.mins, w.maxs, w.origin, MOVE_WORLDONLY, w);
+ if(trace_startsolid)
+ {
+ org = w.origin + '-2 -2 2';
+ tracebox(org, w.mins, w.maxs, w.origin, MOVE_WORLDONLY, w);
+ if(trace_startsolid)
+ {
+ org = w.origin + '-2 2 2';
+ tracebox(org, w.mins, w.maxs, w.origin, MOVE_WORLDONLY, w);
+ if(trace_startsolid)
+ {
+ org = w.origin + '2 -2 2';
+ tracebox(org, w.mins, w.maxs, w.origin, MOVE_WORLDONLY, w);
+ if(trace_startsolid)
+ {
+ // this WP is in solid, refuse it
+ dprint("Killed a waypoint that was stuck in solid at ", vtos(org), "\n");
+ remove(w);
+ return world;
+ }
+ }
+ }
+ }
+
+ org = org * 0.05 + trace_endpos * 0.95; // don't trust the trace fully
+ tracebox(org, w.mins, w.maxs, org - '0 0 128', MOVE_WORLDONLY, w);
+
+ if(trace_fraction == 1 || trace_startsolid)
+ {
+ // this WP is in air, refuse it
+ dprint("Killed a waypoint that was stuck in air/ceiling at ", vtos(w.origin), "\n");
+ remove(w);
+ return world;
+ }
+ trace_endpos_z += 0.1; // don't trust the trace fully
+
+// dprint("Moved waypoint at ", vtos(w.origin), " by ", ftos(vlen(w.origin - trace_endpos)));
+// dprint(" direction: ", vtos((trace_endpos - w.origin)), "\n");
+
+ setorigin(w, trace_endpos);
+ }
+
setsize(w, m1, m2);
waypoint_clearlinks(w);
Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc 2007-04-18 20:44:05 UTC (rev 2345)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc 2007-04-19 09:38:47 UTC (rev 2346)
@@ -291,7 +291,7 @@
if (self.weaponentity)
{
self.weaponentity.state = WS_CLEAR;
- setmodel(self.weaponentity, ""); // precision already set
+ // self.weaponname = ""; // next frame will setmodel it to "" when needed anyway
self.weaponentity.effects = 0;
}
};
Modified: trunk/data/qcsrc/server/g_hook.qc
===================================================================
--- trunk/data/qcsrc/server/g_hook.qc 2007-04-18 20:44:05 UTC (rev 2345)
+++ trunk/data/qcsrc/server/g_hook.qc 2007-04-19 09:38:47 UTC (rev 2346)
@@ -233,6 +233,8 @@
missile.state = 0; // not latched onto anything
missile.velocity = v_forward * cvar("g_balance_grapplehook_speed_fly");
+ W_SetupProjectileVelocity(missile);
+
missile.angles = vectoangles (missile.velocity);
//missile.glow_color = 250; // 244, 250
//missile.glow_size = 120;
More information about the nexuiz-commits
mailing list