]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/portals.qc
No need to use macros for this, just declare them directly
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / portals.qc
index bf50c9d3cada867c7d4d2034244a5a75a0d8caa4..75dae14bf5f28d666e9beb91e820e912389a1a54 100644 (file)
@@ -154,8 +154,11 @@ float Portal_TeleportPlayer(entity teleporter, entity player)
        // factor -1 allows chaining portals, but may be weird
        player.right_vector = -1 * AnglesTransform_Apply(transform, player.right_vector);
 
-       if(player.flagcarried)
-               DropFlag(player.flagcarried, player, world);
+       entity oldself = self;
+       self = player;
+       MUTATOR_CALLHOOK(PortalTeleport);
+       player = self;
+       self = oldself;
 
        if not(teleporter.enemy)
        {
@@ -645,11 +648,7 @@ float Portal_SpawnInPortalAtTrace(entity own, vector dir, float portal_id_val)
 
        portal = Portal_Spawn(own, org, ang);
        if(!portal)
-       {
-               // if(!own.portal_out || own.portal_out.portal_id == portal_id_val)
-                       Portal_ClearAll_PortalsOnly(own);
                return 0;
-       }
 
        portal.portal_id = portal_id_val;
        Portal_SetInPortal(own, portal);
@@ -669,11 +668,7 @@ float Portal_SpawnOutPortalAtTrace(entity own, vector dir, float portal_id_val)
 
        portal = Portal_Spawn(own, org, ang);
        if(!portal)
-       {
-               // if(!own.portal_in || own.portal_in.portal_id == portal_id_val)
-                       Portal_ClearAll_PortalsOnly(own);
                return 0;
-       }
 
        portal.portal_id = portal_id_val;
        Portal_SetOutPortal(own, portal);