X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fserver%2Fportals.qc;h=75dae14bf5f28d666e9beb91e820e912389a1a54;hb=b26f1812d999d544c7762afb3479bf93c4309d6b;hp=bf50c9d3cada867c7d4d2034244a5a75a0d8caa4;hpb=95dd310175cb3f235a457ad28cd77c659eec71f4;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/portals.qc b/qcsrc/server/portals.qc index bf50c9d3c..75dae14bf 100644 --- a/qcsrc/server/portals.qc +++ b/qcsrc/server/portals.qc @@ -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);