Merge pull request #10215 from Ghommie/Ghommie-cit473
Ports "Fixes ChangeTurf CHANGETURF_INHERIT_AIR flag and add it to all calls."
This commit is contained in:
@@ -262,14 +262,14 @@
|
||||
occupant_message("Deconstructing [W]...")
|
||||
if(do_after_cooldown(W))
|
||||
chassis.spark_system.start()
|
||||
W.ScrapeAway()
|
||||
W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(W, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
else if(isfloorturf(target))
|
||||
var/turf/open/floor/F = target
|
||||
occupant_message("Deconstructing [F]...")
|
||||
if(do_after_cooldown(target))
|
||||
chassis.spark_system.start()
|
||||
F.ScrapeAway()
|
||||
F.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(F, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
else if (istype(target, /obj/machinery/door/airlock))
|
||||
occupant_message("Deconstructing [target]...")
|
||||
@@ -282,7 +282,7 @@
|
||||
var/turf/open/space/S = target
|
||||
occupant_message("Building Floor...")
|
||||
if(do_after_cooldown(S))
|
||||
S.PlaceOnTop(/turf/open/floor/plating)
|
||||
S.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(S, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
chassis.spark_system.start()
|
||||
else if(isfloorturf(target))
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
if(metal)
|
||||
var/turf/T = get_turf(src)
|
||||
if(isspaceturf(T)) //Block up any exposed space
|
||||
T.PlaceOnTop(/turf/open/floor/plating/foam)
|
||||
T.PlaceOnTop(/turf/open/floor/plating/foam, flags = CHANGETURF_INHERIT_AIR)
|
||||
for(var/direction in GLOB.cardinals)
|
||||
var/turf/cardinal_turf = get_step(T, direction)
|
||||
if(get_area(cardinal_turf) != get_area(T)) //We're at an area boundary, so let's block off this turf!
|
||||
|
||||
@@ -192,9 +192,14 @@
|
||||
var/obj/O
|
||||
if(R.max_res_amount > 1) //Is it a stack?
|
||||
O = new R.result_type(usr.drop_location(), R.res_amount * multiplier)
|
||||
else
|
||||
else if(ispath(R.result_type, /turf))
|
||||
var/turf/T = usr.drop_location()
|
||||
if(!isturf(T))
|
||||
return
|
||||
T.PlaceOnTop(R.result_type, flags = CHANGETURF_INHERIT_AIR)
|
||||
O = new R.result_type(usr.drop_location())
|
||||
O.setDir(usr.dir)
|
||||
if(O)
|
||||
O.setDir(usr.dir)
|
||||
use(R.req_amount * multiplier)
|
||||
|
||||
//START: oh fuck i'm so sorry
|
||||
|
||||
@@ -872,7 +872,7 @@
|
||||
user.visible_message("<span class='danger'>[user] blasts \the [target] with \the [src]!</span>")
|
||||
playsound(target, 'sound/magic/disintegrate.ogg', 100, 1)
|
||||
W.break_wall()
|
||||
W.ScrapeAway()
|
||||
W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return
|
||||
|
||||
//HF blade
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
var/turf/T = src.loc
|
||||
if(isspaceturf(T))
|
||||
T.PlaceOnTop(/turf/open/floor/plating)
|
||||
T.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -102,13 +102,13 @@
|
||||
/obj/structure/stairs/proc/force_open_above()
|
||||
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
if(T && !istype(T))
|
||||
T.ChangeTurf(/turf/open/openspace)
|
||||
T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/obj/structure/stairs/proc/on_multiz_new(turf/source, dir)
|
||||
if(dir == UP)
|
||||
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
if(T && !istype(T))
|
||||
T.ChangeTurf(/turf/open/openspace)
|
||||
T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/obj/structure/stairs/intercept_zImpact(atom/movable/AM, levels = 1)
|
||||
. = ..()
|
||||
|
||||
@@ -128,16 +128,15 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
/turf/open/ChangeTurf(path, list/new_baseturfs, flags)
|
||||
if ((flags & CHANGETURF_INHERIT_AIR) && ispath(path, /turf/open))
|
||||
SSair.remove_from_active(src)
|
||||
var/stashed_air = air
|
||||
air = null // so that it doesn't get deleted
|
||||
var/datum/gas_mixture/stashed_air = new()
|
||||
stashed_air.copy_from(air)
|
||||
. = ..()
|
||||
if (!. || . == src) // changeturf failed or didn't do anything
|
||||
air = stashed_air
|
||||
if (!.) // changeturf failed or didn't do anything
|
||||
QDEL_NULL(stashed_air)
|
||||
return
|
||||
var/turf/open/newTurf = .
|
||||
if (!istype(newTurf.air, /datum/gas_mixture/immutable/space))
|
||||
QDEL_NULL(newTurf.air)
|
||||
newTurf.air = stashed_air
|
||||
newTurf.air.copy_from(stashed_air)
|
||||
QDEL_NULL(stashed_air)
|
||||
SSair.add_to_active(newTurf)
|
||||
else
|
||||
if(ispath(path,/turf/closed))
|
||||
@@ -315,5 +314,5 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
SSair.add_to_active(src)
|
||||
|
||||
/turf/proc/ReplaceWithLattice()
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
new /obj/structure/lattice(locate(x, y, z))
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
explosion_block = 50
|
||||
|
||||
/turf/closed/indestructible/TerraformTurf(path, defer_change = FALSE, ignore_air = FALSE)
|
||||
/turf/closed/indestructible/TerraformTurf(path, new_baseturf, flags, defer_change = FALSE, ignore_air = FALSE)
|
||||
return
|
||||
|
||||
/turf/closed/indestructible/acid_act(acidpwr, acid_volume, acid_id)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
/turf/open/indestructible/singularity_act()
|
||||
return
|
||||
|
||||
/turf/open/indestructible/TerraformTurf(path, defer_change = FALSE, ignore_air = FALSE)
|
||||
/turf/open/indestructible/TerraformTurf(path, new_baseturf, flags, defer_change = FALSE, ignore_air = FALSE)
|
||||
return
|
||||
|
||||
/turf/open/indestructible/sound
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
qdel(L)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
PlaceOnTop(/turf/open/floor/plating)
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one floor tile to build a floor!</span>")
|
||||
else
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
switch(passed_mode)
|
||||
if(RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
PlaceOnTop(/turf/open/floor/plating)
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
// Create a floor, which has this chasm underneath it
|
||||
PlaceOnTop(/turf/open/floor/plating)
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one floor tile to build a floor!</span>")
|
||||
else
|
||||
|
||||
@@ -62,29 +62,29 @@
|
||||
if(severity != 1 && shielded && target != src)
|
||||
return
|
||||
if(target == src)
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return
|
||||
if(target != null)
|
||||
severity = 3
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
ScrapeAway(2)
|
||||
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
|
||||
if(2)
|
||||
switch(pick(1,2;75,3))
|
||||
if(1)
|
||||
if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor))
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
ReplaceWithLattice()
|
||||
else
|
||||
ScrapeAway(2)
|
||||
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
|
||||
if(prob(33))
|
||||
new /obj/item/stack/sheet/metal(src)
|
||||
if(2)
|
||||
ScrapeAway(2)
|
||||
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
|
||||
if(3)
|
||||
if(prob(80))
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
break_tile()
|
||||
hotspot_expose(1000,CELL_VOLUME)
|
||||
@@ -135,7 +135,7 @@
|
||||
burnt = 1
|
||||
|
||||
/turf/open/floor/proc/make_plating()
|
||||
return ScrapeAway()
|
||||
return ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/turf/open/floor/ChangeTurf(path, new_baseturf, flags)
|
||||
if(!isfloorturf(src))
|
||||
@@ -213,15 +213,15 @@
|
||||
/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20)
|
||||
. = ..()
|
||||
if(.)
|
||||
ChangeTurf(/turf/open/floor/engine/cult)
|
||||
ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/turf/open/floor/ratvar_act(force, ignore_mobs)
|
||||
. = ..()
|
||||
if(.)
|
||||
ChangeTurf(/turf/open/floor/clockwork)
|
||||
ChangeTurf(/turf/open/floor/clockwork, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/turf/open/floor/acid_melt()
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/turf/open/floor/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
switch(the_rcd.mode)
|
||||
@@ -267,7 +267,7 @@
|
||||
A.autoclose = TRUE
|
||||
return TRUE
|
||||
if(RCD_DECONSTRUCT)
|
||||
if(ScrapeAway() == src)
|
||||
if(ScrapeAway(flags = CHANGETURF_INHERIT_AIR) == src)
|
||||
return FALSE
|
||||
to_chat(user, "<span class='notice'>You deconstruct [src].</span>")
|
||||
return TRUE
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
to_chat(user, "<span class='notice'>You begin reinforcing the floor...</span>")
|
||||
if(do_after(user, 30, target = src))
|
||||
if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine))
|
||||
PlaceOnTop(/turf/open/floor/engine)
|
||||
PlaceOnTop(/turf/open/floor/engine, flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 80, 1)
|
||||
R.use(2)
|
||||
to_chat(user, "<span class='notice'>You reinforce the floor.</span>")
|
||||
@@ -76,7 +76,7 @@
|
||||
var/obj/item/stack/tile/W = C
|
||||
if(!W.use(1))
|
||||
return
|
||||
var/turf/open/floor/T = PlaceOnTop(W.turf_type)
|
||||
var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR)
|
||||
if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow
|
||||
var/obj/item/stack/tile/light/L = W
|
||||
var/turf/open/floor/light/F = T
|
||||
@@ -117,7 +117,7 @@
|
||||
qdel(L)
|
||||
to_chat(user, "<span class='notice'>You reinforce the foamed plating with tiling.</span>")
|
||||
playsound(src, 'sound/weapons/Genhit.ogg', 50, TRUE)
|
||||
ChangeTurf(/turf/open/floor/plating)
|
||||
ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
playsound(src, 'sound/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
@@ -125,7 +125,7 @@
|
||||
if(prob(I.force * 20 - 25))
|
||||
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>", \
|
||||
"<span class='danger'>You smash through [src] with [I]!</span>")
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
to_chat(user, "<span class='danger'>You hit [src], to no effect!</span>")
|
||||
|
||||
@@ -136,13 +136,13 @@
|
||||
/turf/open/floor/plating/foam/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
if(passed_mode == RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
ChangeTurf(/turf/open/floor/plating)
|
||||
ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/turf/open/floor/plating/foam/ex_act()
|
||||
..()
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/turf/open/floor/plating/foam/tool_act(mob/living/user, obj/item/I, tool_type)
|
||||
return
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
return TRUE
|
||||
if(floor_tile)
|
||||
new floor_tile(src, 2)
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
|
||||
/turf/open/floor/engine/acid_act(acidpwr, acid_volume)
|
||||
@@ -56,23 +56,23 @@
|
||||
if(severity != 1 && shielded && target != src)
|
||||
return
|
||||
if(target == src)
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(prob(80))
|
||||
if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor))
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
ReplaceWithLattice()
|
||||
else
|
||||
ScrapeAway(2)
|
||||
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
|
||||
else if(prob(50))
|
||||
ScrapeAway(2)
|
||||
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
if(2)
|
||||
if(prob(50))
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/turf/open/floor/engine/singularity_pull(S, current_size)
|
||||
..()
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
switch(passed_mode)
|
||||
if(RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
PlaceOnTop(/turf/open/floor/plating)
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
qdel(L)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
PlaceOnTop(/turf/open/floor/plating)
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one floor tile to build a floor!</span>")
|
||||
else
|
||||
@@ -212,7 +212,7 @@
|
||||
switch(passed_mode)
|
||||
if(RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
PlaceOnTop(/turf/open/floor/plating)
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
continue
|
||||
if(O.invisibility == INVISIBILITY_MAXIMUM)
|
||||
O.singularity_act()
|
||||
ScrapeAway()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return(2)
|
||||
|
||||
/turf/proc/can_have_cabling()
|
||||
@@ -564,4 +564,4 @@
|
||||
//Whatever happens after high temperature fire dies out or thermite reaction works.
|
||||
//Should return new turf
|
||||
/turf/proc/Melt()
|
||||
return ScrapeAway()
|
||||
return ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
Reference in New Issue
Block a user