diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index e52cc857c61..cc65f2fad6b 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -792,6 +792,7 @@ proc/GaussRandRound(var/sigma,var/roundto) var/old_icon1 = T.icon var/old_overlays = T.overlays.Copy() var/old_underlays = T.underlays.Copy() + var/old_decals = T.decals ? T.decals.Copy() : null X = B.ChangeTurf(T.type) X.set_dir(old_dir1) @@ -799,6 +800,9 @@ proc/GaussRandRound(var/sigma,var/roundto) X.icon = old_icon1 X.overlays = old_overlays X.underlays = old_underlays + X.decals = old_decals + if(old_decals) + X.apply_decals() //Move the air from source to dest var/turf/simulated/ST = T @@ -824,9 +828,11 @@ proc/GaussRandRound(var/sigma,var/roundto) else if(turftoleave) T.ChangeTurf(turftoleave) + T.apply_decals() else T.ChangeTurf(get_base_turf_by_area(T)) + T.apply_decals() refined_src -= T refined_trg -= B diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index f5beaf312d1..16eefe85670 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -12,6 +12,7 @@ var/turf/turf_type var/turf/simulated/shuttle/my_turf var/image/turf_image + var/list/decals New(var/location = null, var/turf/simulated/shuttle/turf) my_turf = turf @@ -24,6 +25,7 @@ var/old_dest_icon = T.icon var/list/old_dest_overlays = T.overlays.Copy() var/list/old_dest_underlays = T.underlays.Copy() + var/list/old_dest_decals = T.decals ? T.decals.Copy() : null //Set the destination to be like us T.Destroy() @@ -33,13 +35,17 @@ new_dest.icon = my_turf.icon new_dest.overlays = my_turf.overlays new_dest.underlays = my_turf.underlays - //Shuttle specific stuff + new_dest.decals = my_turf.decals + //Shuttle specific stuff new_dest.interior_corner = my_turf.interior_corner new_dest.takes_underlays = my_turf.takes_underlays new_dest.under_turf = my_turf.under_turf new_dest.join_flags = my_turf.join_flags new_dest.join_group = my_turf.join_group + if(new_dest.decals) + new_dest.apply_decals() + //Tell the new turf about what was there before new_dest.landed_holder = new(turf = new_dest) new_dest.landed_holder.turf_type = old_dest_type @@ -48,6 +54,7 @@ new_dest.landed_holder.icon_state = old_dest_icon_state new_dest.landed_holder.overlays = old_dest_overlays new_dest.landed_holder.underlays = old_dest_underlays + new_dest.landed_holder.decals = old_dest_decals //Update underlays if necessary (interior corners won't have changed). if(new_dest.takes_underlays && !new_dest.interior_corner) @@ -65,6 +72,9 @@ new_source.icon = icon new_source.overlays = overlays new_source.underlays = underlays + new_source.decals = decals + if(new_source.decals) + new_source.apply_decals() else new_source = my_turf.ChangeTurf(get_base_turf_by_area(my_turf),,1)