r4344 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Sep 4 11:20:35 EDT 2008


Author: div0
Date: 2008-09-04 11:20:35 -0400 (Thu, 04 Sep 2008)
New Revision: 4344

Modified:
   trunk/data/qcsrc/server/portals.qc
Log:
make portal creation more symmetric


Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc	2008-09-04 14:38:03 UTC (rev 4343)
+++ trunk/data/qcsrc/server/portals.qc	2008-09-04 15:20:35 UTC (rev 4344)
@@ -346,9 +346,9 @@
 // cleanup:
 //   when creating in-portal:
 //     disconnect
-//     clear existing out-portal
-//     make existing in-portal an out-portal and connect
+//     clear existing in-portal
 //     set as in-portal
+//     connect
 //   when creating out-portal:
 //     disconnect
 //     clear existing out-portal
@@ -362,14 +362,12 @@
 //   TODO: ensure only one portal shot at once
 float Portal_SetInPortal(entity own, entity portal)
 {
-	if(own.portal_out)
+	if(own.portal_in)
 	{
-		if(own.portal_in)
+		if(own.portal_out)
 			Portal_Disconnect(own.portal_in, own.portal_out);
-		Portal_Remove(own.portal_out, 0);
+		Portal_Remove(own.portal_in, 0);
 	}
-	if(own.portal_in)
-		own.portal_out = own.portal_in;
 	own.portal_in = portal;
 	if(own.portal_out)
 		Portal_Connect(own.portal_in, own.portal_out);
@@ -377,15 +375,15 @@
 }
 float Portal_SetOutPortal(entity own, entity portal)
 {
-	if(!own.portal_in)
-		return 0;
 	if(own.portal_out)
 	{
-		Portal_Disconnect(own.portal_in, own.portal_out);
+		if(own.portal_in)
+			Portal_Disconnect(own.portal_in, own.portal_out);
 		Portal_Remove(own.portal_out, 0);
 	}
 	own.portal_out = portal;
-	Portal_Connect(own.portal_in, own.portal_out);
+	if(own.portal_in)
+		Portal_Connect(own.portal_in, own.portal_out);
 	return 1;
 }
 void Portal_ClearAll(entity own)




More information about the nexuiz-commits mailing list