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