r4437 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Sep 9 14:12:19 EDT 2008
Author: div0
Date: 2008-09-09 14:12:19 -0400 (Tue, 09 Sep 2008)
New Revision: 4437
Modified:
trunk/data/qcsrc/server/cl_player.qc
trunk/data/qcsrc/server/portals.qc
trunk/data/qcsrc/server/portals.qh
Log:
again: remove portals when owner dies, but this time without crash
Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc 2008-09-09 13:36:42 UTC (rev 4436)
+++ trunk/data/qcsrc/server/cl_player.qc 2008-09-09 18:12:19 UTC (rev 4437)
@@ -506,6 +506,7 @@
kh_Key_DropAll(self, TRUE);
if(self.flagcarried)
DropFlag(self.flagcarried);
+ Portal_ClearAllLater(self);
// clear waypoints
WaypointSprite_PlayerDead();
// make the corpse upright (not tilted)
Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc 2008-09-09 13:36:42 UTC (rev 4436)
+++ trunk/data/qcsrc/server/portals.qc 2008-09-09 18:12:19 UTC (rev 4437)
@@ -543,6 +543,24 @@
if(own.portal_out)
Portal_Remove(own.portal_out, 0);
}
+void Portal_RemoveLater_Think()
+{
+ Portal_Remove(self, self.cnt);
+}
+void Portal_RemoveLater(entity portal, float kill)
+{
+ Portal_MakeBrokenPortal(portal);
+ portal.cnt = kill;
+ portal.think = Portal_RemoveLater_Think;
+ portal.nextthink = time;
+}
+void Portal_ClearAllLater(entity own)
+{
+ if(own.portal_in)
+ Portal_RemoveLater(own.portal_in, 0);
+ if(own.portal_out)
+ Portal_RemoveLater(own.portal_out, 0);
+}
void Portal_ClearWithID(entity own, float id)
{
if(own.portal_in)
Modified: trunk/data/qcsrc/server/portals.qh
===================================================================
--- trunk/data/qcsrc/server/portals.qh 2008-09-09 13:36:42 UTC (rev 4436)
+++ trunk/data/qcsrc/server/portals.qh 2008-09-09 18:12:19 UTC (rev 4437)
@@ -1,4 +1,5 @@
void Portal_ClearAll(entity own);
+void Portal_ClearAllLater(entity own);
float Portal_SpawnOutPortalAtTrace(entity own, vector dir, float id);
float Portal_SpawnInPortalAtTrace(entity own, vector dir, float id);
void Portal_ClearWithID(entity own, float id);
More information about the nexuiz-commits
mailing list