r4326 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Sep 4 05:15:18 EDT 2008


Author: div0
Date: 2008-09-04 05:15:16 -0400 (Thu, 04 Sep 2008)
New Revision: 4326

Modified:
   trunk/data/qcsrc/server/portals.qc
   trunk/data/weapons.cfg
Log:
fix portals halfway on edge


Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc	2008-09-04 09:00:23 UTC (rev 4325)
+++ trunk/data/qcsrc/server/portals.qc	2008-09-04 09:15:16 UTC (rev 4326)
@@ -63,6 +63,17 @@
 	return Portal_Transform_Multiply(to_transform, Portal_Transform_Invert(from_transform));
 }
 
+float PlayerEdgeDistance(entity p, vector v)
+{
+	vector vbest;
+
+	if(v_x < 0) vbest_x = p.mins_x; else vbest_x = p.maxs_x;
+	if(v_y < 0) vbest_y = p.mins_y; else vbest_y = p.maxs_y;
+	if(v_z < 0) vbest_z = p.mins_z; else vbest_z = p.maxs_z;
+
+	return vbest * v;
+}
+
 void Portal_TeleportPlayer(entity teleporter, entity player)
 {
 	vector from, to, safe, step, transform, ang, newvel;
@@ -78,7 +89,7 @@
 	fixedmakevectors(teleporter.enemy.angles);
 
 	// first shift it ON the plane if needed
-	planeshift = ((teleporter.enemy.origin - to) * v_forward);
+	planeshift = ((teleporter.enemy.origin - to) * v_forward) + PlayerEdgeDistance(player, v_forward);
 	if(planeshift > 0)
 		to += v_forward * planeshift;
 	else
@@ -444,6 +455,7 @@
 	{
 		trace_endpos = trace_ent.origin + '0 0 1' * PL_MIN_z;
 		trace_plane_normal = '0 0 1';
+		dir = -1 * dir; // create telefrag portals the other way round
 	}
 
 	org = trace_endpos;
@@ -474,6 +486,7 @@
 	{
 		trace_endpos = trace_ent.origin + '0 0 1' * PL_MIN_z;
 		trace_plane_normal = '0 0 1';
+		dir = -1 * dir; // create telefrag portals the other way round
 	}
 
 	org = trace_endpos;

Modified: trunk/data/weapons.cfg
===================================================================
--- trunk/data/weapons.cfg	2008-09-04 09:00:23 UTC (rev 4325)
+++ trunk/data/weapons.cfg	2008-09-04 09:15:16 UTC (rev 4326)
@@ -7,6 +7,8 @@
 set g_start_weapon_nex 0
 set g_start_weapon_hagar 0
 set g_start_weapon_rocketlauncher 0
+set g_start_weapon_minstanex 0
+set g_start_weapon_porto 0
 set g_start_ammo_shells 50
 set g_start_ammo_nails 0
 set g_start_ammo_rockets 0




More information about the nexuiz-commits mailing list