From efede46f06bfdad795ce6826fd795dda6460b673 Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 3 Sep 2008 15:11:48 +0000 Subject: [PATCH] fix sure crashes for portals when a player disconnects who owns portals git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4318 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_client.qc | 4 ++++ data/qcsrc/server/cl_player.qc | 1 + data/qcsrc/server/portals.qh | 1 + 3 files changed, 6 insertions(+) diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 82c48765a..1178dc3d4 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -401,6 +401,8 @@ void PutObserverInServer (void) DropAllRunes(self); kh_Key_DropAll(self, TRUE); + Portal_ClearAll(self); + if(self.flagcarried) DropFlag(self.flagcarried); @@ -1252,6 +1254,8 @@ void ClientDisconnect (void) DropAllRunes(self); kh_Key_DropAll(self, TRUE); + Portal_ClearAll(self); + if(self.flagcarried) DropFlag(self.flagcarried); diff --git a/data/qcsrc/server/cl_player.qc b/data/qcsrc/server/cl_player.qc index cbb5fe319..0ab989cfc 100644 --- a/data/qcsrc/server/cl_player.qc +++ b/data/qcsrc/server/cl_player.qc @@ -504,6 +504,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht kh_Key_DropAll(self, FALSE); else kh_Key_DropAll(self, TRUE); + Portal_ClearAll(self); if(self.flagcarried) DropFlag(self.flagcarried); // clear waypoints diff --git a/data/qcsrc/server/portals.qh b/data/qcsrc/server/portals.qh index 27b087c2c..08c1f5848 100644 --- a/data/qcsrc/server/portals.qh +++ b/data/qcsrc/server/portals.qh @@ -1,2 +1,3 @@ +void Portal_ClearAll(entity own); float Portal_SpawnOutPortalAtTrace(entity own, vector dir, float portal_id); float Portal_SpawnInPortalAtTrace(entity own, vector dir, float portal_id); -- 2.39.2