r4524 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Sep 27 07:57:05 EDT 2008
Author: div0
Date: 2008-09-27 07:57:04 -0400 (Sat, 27 Sep 2008)
New Revision: 4524
Modified:
trunk/data/qcsrc/server/portals.qc
trunk/data/qcsrc/server/t_teleporters.qc
Log:
portals fix (thanks, Master)
Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc 2008-09-27 10:59:36 UTC (rev 4523)
+++ trunk/data/qcsrc/server/portals.qc 2008-09-27 11:57:04 UTC (rev 4524)
@@ -1,3 +1,6 @@
+#define SAFENUDGE '1 1 1'
+#define SAFERNUDGE '8 8 8'
+
.vector portal_transform;
.vector portal_safe_origin;
.float portal_wants_to_vanish;
@@ -114,18 +117,19 @@
safe = teleporter.enemy.portal_safe_origin; // a valid player origin
step = to + ((safe - to) * v_forward) * v_forward;
- tracebox(safe, player.mins - '1 1 1', player.maxs + '1 1 1', step, MOVE_NOMONSTERS, player);
+ tracebox(safe, player.mins - SAFENUDGE, player.maxs + SAFENUDGE, step, MOVE_NOMONSTERS, player);
if(trace_startsolid)
{
print("'safe' teleport location is not safe!\n");
// FAIL TODO why does this happen?
return 0;
}
- safe = trace_endpos;
- tracebox(safe, player.mins - '1 1 1', player.maxs + '1 1 1', to, MOVE_NOMONSTERS, player);
+ safe = trace_endpos + normalize(safe - trace_endpos) * 0;
+ tracebox(safe, player.mins - SAFENUDGE, player.maxs + SAFENUDGE, to, MOVE_NOMONSTERS, player);
if(trace_startsolid)
error("trace_endpos in solid!");
- to = trace_endpos;
+ to = trace_endpos + normalize(safe - trace_endpos) * 0;
+ //print(vtos(to), "\n");
// ang_x stuff works around weird quake angles
if(player.classname == "player")
@@ -204,8 +208,8 @@
{
vector o;
o = portal.origin;
- portal.mins = PL_MIN - '8 8 8';
- portal.maxs = PL_MAX + '8 8 8';
+ portal.mins = PL_MIN - SAFERNUDGE;
+ portal.maxs = PL_MAX + SAFERNUDGE;
fixedmakevectors(portal.angles);
portal.origin += 16 * v_forward;
if(!move_out_of_solid(portal))
Modified: trunk/data/qcsrc/server/t_teleporters.qc
===================================================================
--- trunk/data/qcsrc/server/t_teleporters.qc 2008-09-27 10:59:36 UTC (rev 4523)
+++ trunk/data/qcsrc/server/t_teleporters.qc 2008-09-27 11:57:04 UTC (rev 4524)
@@ -18,7 +18,7 @@
// Relocate the player
// assuming to allows PL_MIN to PL_MAX box and some more
- setorigin (player, to + '0 0 1' * (1 - player.mins_z - 24));
+ setorigin (player, to);
player.angles = to_angles;
player.fixangle = TRUE;
player.velocity = to_velocity;
More information about the nexuiz-commits
mailing list