Makes objects blocking air restore airflow in /atom/Destroy (#39210)

This commit is contained in:
AnturK
2018-07-21 12:28:57 +02:00
committed by yogstation13-bot
parent f1f83f5173
commit 9eee86d4c1
12 changed files with 13 additions and 48 deletions

View File

@@ -295,7 +295,6 @@
return 1 return 1
/atom/movable/Destroy(force) /atom/movable/Destroy(force)
QDEL_NULL(proximity_monitor) QDEL_NULL(proximity_monitor)
QDEL_NULL(language_holder) QDEL_NULL(language_holder)
@@ -303,6 +302,10 @@
. = ..() . = ..()
if(loc) if(loc)
//Restore air flow if we were blocking it (movables with ATMOS_PASS_PROC will need to do this manually if necessary)
if(((CanAtmosPass == ATMOS_PASS_DENSITY && density) || CanAtmosPass == ATMOS_PASS_NO) && isturf(loc))
CanAtmosPass = ATMOS_PASS_YES
air_update_turf(TRUE)
loc.handle_atom_del(src) loc.handle_atom_del(src)
for(var/atom/movable/AM in contents) for(var/atom/movable/AM in contents)
qdel(AM) qdel(AM)

View File

@@ -70,8 +70,6 @@
layer = initial(layer) layer = initial(layer)
/obj/machinery/door/Destroy() /obj/machinery/door/Destroy()
density = FALSE
air_update_turf(1)
update_freelook_sight() update_freelook_sight()
GLOB.airlocks -= src GLOB.airlocks -= src
if(spark_system) if(spark_system)

View File

@@ -15,11 +15,6 @@
setDir(pick(GLOB.cardinals)) setDir(pick(GLOB.cardinals))
air_update_turf(1) air_update_turf(1)
/obj/structure/emergency_shield/Destroy()
density = FALSE
air_update_turf(1)
return ..()
/obj/structure/emergency_shield/Move() /obj/structure/emergency_shield/Move()
var/turf/T = loc var/turf/T = loc
. = ..() . = ..()

View File

@@ -274,12 +274,6 @@
. = ..() . = ..()
air_update_turf(1) air_update_turf(1)
/obj/structure/foamedmetal/Destroy()
density = FALSE
air_update_turf(1)
return ..()
/obj/structure/foamedmetal/Move() /obj/structure/foamedmetal/Move()
var/turf/T = loc var/turf/T = loc
. = ..() . = ..()

View File

@@ -64,9 +64,9 @@
CanAtmosPass = ATMOS_PASS_DENSITY CanAtmosPass = ATMOS_PASS_DENSITY
/obj/structure/alien/resin/New(location) /obj/structure/alien/resin/Initialize(mapload)
..() . = ..()
air_update_turf(1) air_update_turf(TRUE)
/obj/structure/alien/resin/Move() /obj/structure/alien/resin/Move()
var/turf/T = loc var/turf/T = loc

View File

@@ -38,11 +38,6 @@
. = ..() . = ..()
AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION) AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION)
/obj/structure/falsewall/Destroy()
density = FALSE
air_update_turf(1)
return ..()
/obj/structure/falsewall/ratvar_act() /obj/structure/falsewall/ratvar_act()
new /obj/structure/falsewall/brass(loc) new /obj/structure/falsewall/brass(loc)
qdel(src) qdel(src)

View File

@@ -83,11 +83,6 @@
. = ..() . = ..()
air_update_turf(TRUE) air_update_turf(TRUE)
/obj/structure/holosign/barrier/atmos/Destroy()
var/turf/T = get_turf(src)
. = ..()
T.air_update_turf(TRUE)
/obj/structure/holosign/barrier/cyborg /obj/structure/holosign/barrier/cyborg
name = "Energy Field" name = "Energy Field"
desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles." desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles."

View File

@@ -30,11 +30,6 @@
/obj/structure/mineral_door/ComponentInitialize() /obj/structure/mineral_door/ComponentInitialize()
AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION) AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION)
/obj/structure/mineral_door/Destroy()
density = FALSE
air_update_turf(1)
return ..()
/obj/structure/mineral_door/Move() /obj/structure/mineral_door/Move()
var/turf/T = loc var/turf/T = loc
. = ..() . = ..()

View File

@@ -11,9 +11,6 @@
CanAtmosPass = ATMOS_PASS_DENSITY CanAtmosPass = ATMOS_PASS_DENSITY
/obj/structure/statue/Initialize()
. = ..()
/obj/structure/statue/attackby(obj/item/W, mob/living/user, params) /obj/structure/statue/attackby(obj/item/W, mob/living/user, params)
add_fingerprint(user) add_fingerprint(user)
user.changeNext_move(CLICK_CD_MELEE) user.changeNext_move(CLICK_CD_MELEE)
@@ -116,8 +113,7 @@
/obj/structure/statue/plasma/bullet_act(obj/item/projectile/Proj) /obj/structure/statue/plasma/bullet_act(obj/item/projectile/Proj)
var/burn = FALSE var/burn = FALSE
if(!(Proj.nodamage) && Proj.damage_type == BURN) if(!(Proj.nodamage) && Proj.damage_type == BURN && !QDELETED(src))
PlasmaBurn(2500)
burn = TRUE burn = TRUE
if(burn) if(burn)
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
@@ -127,10 +123,11 @@
else else
message_admins("Plasma statue ignited by [Proj]. No known firer, in [ADMIN_VERBOSEJMP(T)]") message_admins("Plasma statue ignited by [Proj]. No known firer, in [ADMIN_VERBOSEJMP(T)]")
log_game("Plasma statue ignited by [Proj] in [AREACOORD(T)]. No known firer.") log_game("Plasma statue ignited by [Proj] in [AREACOORD(T)]. No known firer.")
PlasmaBurn(2500)
..() ..()
/obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params) /obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params)
if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite if(W.is_hot() > 300 && !QDELETED(src))//If the temperature of the object is over 300, then ignite
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]")
log_game("Plasma statue ignited by [key_name(user)] in [AREACOORD(T)]") log_game("Plasma statue ignited by [key_name(user)] in [AREACOORD(T)]")
@@ -139,6 +136,8 @@
return ..() return ..()
/obj/structure/statue/plasma/proc/PlasmaBurn(exposed_temperature) /obj/structure/statue/plasma/proc/PlasmaBurn(exposed_temperature)
if(QDELETED(src))
return
atmos_spawn_air("plasma=[oreAmount*10];TEMP=[exposed_temperature]") atmos_spawn_air("plasma=[oreAmount*10];TEMP=[exposed_temperature]")
deconstruct(FALSE) deconstruct(FALSE)

View File

@@ -15,9 +15,7 @@
/obj/effect/clockwork/servant_blocker/Destroy(force) /obj/effect/clockwork/servant_blocker/Destroy(force)
if(!force) if(!force)
return QDEL_HINT_LETMELIVE return QDEL_HINT_LETMELIVE
var/turf/T = get_turf(src) return ..()
. = ..()
T.air_update_turf(TRUE)
/obj/effect/clockwork/servant_blocker/CanPass(atom/movable/M, turf/target) /obj/effect/clockwork/servant_blocker/CanPass(atom/movable/M, turf/target)
var/list/target_contents = M.GetAllContents() + M var/list/target_contents = M.GetAllContents() + M

View File

@@ -618,9 +618,7 @@ structure_check() searches for nearby cultist structures required for the invoca
to_chat(user, "<span class='cultitalic'>The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)].</span>") to_chat(user, "<span class='cultitalic'>The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)].</span>")
/obj/effect/rune/wall/Destroy() /obj/effect/rune/wall/Destroy()
density = FALSE
GLOB.wall_runes -= src GLOB.wall_runes -= src
air_update_turf(1)
return ..() return ..()
/obj/effect/rune/wall/BlockSuperconductivity() /obj/effect/rune/wall/BlockSuperconductivity()

View File

@@ -247,11 +247,6 @@
. = ..() . = ..()
air_update_turf(1) air_update_turf(1)
/obj/structure/fans/Destroy()
var/turf/T = loc
. = ..()
T.air_update_turf(1)
//Inivisible, indestructible fans //Inivisible, indestructible fans
/obj/structure/fans/tiny/invisible /obj/structure/fans/tiny/invisible
name = "air flow blocker" name = "air flow blocker"