From 433bd7f830f8d2ef2f8b54ca928e7460abe2a3f0 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 12 Aug 2018 13:46:39 -0700 Subject: [PATCH] Add atmos link override variables to hand teleporters and portal guns (#39641) Portals have supported atmospherics linking for a long time, just that it defaults to off. This would allow admins to let the two things that uses basic portals (not wormholes) enable it for portals they create. --- code/game/objects/effects/portals.dm | 6 +++--- code/game/objects/items/teleportation.dm | 3 ++- code/modules/projectiles/guns/energy/special.dm | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index dbcb8c987cd..d69cfd38ef0 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -1,10 +1,10 @@ -/proc/create_portal_pair(turf/source, turf/destination, _creator = null, _lifespan = 300, accuracy = 0, newtype = /obj/effect/portal) +/proc/create_portal_pair(turf/source, turf/destination, _creator = null, _lifespan = 300, accuracy = 0, newtype = /obj/effect/portal, atmos_link_override) if(!istype(source) || !istype(destination)) return var/turf/actual_destination = get_teleport_turf(destination, accuracy) - var/obj/effect/portal/P1 = new newtype(source, _creator, _lifespan, null, FALSE) - var/obj/effect/portal/P2 = new newtype(actual_destination, _creator, _lifespan, P1, TRUE) + var/obj/effect/portal/P1 = new newtype(source, _creator, _lifespan, null, FALSE, null, atmos_link_override) + var/obj/effect/portal/P2 = new newtype(actual_destination, _creator, _lifespan, P1, TRUE, null, atmos_link_override) if(!istype(P1)||!istype(P2)) return P1.link_portal(P2) diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index d2c989b20cf..1ccc88d8923 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -131,6 +131,7 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/list/active_portal_pairs var/max_portal_pairs = 3 + var/atmos_link_override /obj/item/hand_tele/Initialize() . = ..() @@ -197,7 +198,7 @@ to_chat(user, "\The [src] is malfunctioning.") return user.show_message("Locked In.", 2) - var/list/obj/effect/portal/created = create_portal_pair(current_location, get_teleport_turf(get_turf(T)), src, 300, 1) + var/list/obj/effect/portal/created = create_portal_pair(current_location, get_teleport_turf(get_turf(T)), src, 300, 1, null, atmos_link_override) if(!(LAZYLEN(created) == 2)) return try_move_adjacent(created[1]) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 29947123bcc..4d18fed8030 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -179,6 +179,7 @@ icon_state = "wormhole_projector" var/obj/effect/portal/p_blue var/obj/effect/portal/p_orange + var/atmos_link = FALSE /obj/item/gun/energy/wormhole_projector/update_icon() icon_state = "[initial(icon_state)][select]" @@ -227,7 +228,7 @@ p_blue.link_portal(p_orange) /obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W, turf/target) - var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null) + var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null, atmos_link) if(istype(W, /obj/item/projectile/beam/wormhole/orange)) qdel(p_orange) p_orange = P