diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index fefc90f1ed..34de5d4590 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -267,6 +267,13 @@ if(!target_turf) return NULLTURF_BORDER + var/area/target_area = get_area(target_turf) + var/area/source_area = get_area(source) + if(source_area.canSmoothWithAreas && !is_type_in_typecache(target_area, source_area.canSmoothWithAreas)) + return null + if(target_area.canSmoothWithAreas && !is_type_in_typecache(source_area, target_area.canSmoothWithAreas)) + return null + if(source.canSmoothWith) var/atom/A if(source.smooth & SMOOTH_MORE) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 28209558d7..a2564eaea9 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -62,6 +62,7 @@ var/list/firealarms var/firedoors_last_closed_on = 0 var/xenobiology_compatible = FALSE //Can the Xenobio management console transverse this area by default? + var/list/canSmoothWithAreas //typecache to limit the areas that atoms in this area can smooth with /*Adding a wizard area teleport list because motherfucking lag -- Urist*/ /*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ @@ -105,6 +106,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) uid = ++global_uid related = list(src) map_name = name // Save the initial (the name set in the map) name of the area. + canSmoothWithAreas = typecacheof(canSmoothWithAreas) if(requires_power) luminosity = 0 diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 2910fc4964..d27b4600c9 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -11,6 +11,11 @@ valid_territory = FALSE icon_state = "shuttle" +/area/shuttle/Initialize() + if(!canSmoothWithAreas) + canSmoothWithAreas = type + . = ..() + ////////////////////////////Multi-area shuttles//////////////////////////// ////////////////////////////Syndicate infiltrator//////////////////////////// @@ -19,6 +24,7 @@ name = "Syndicate Infiltrator" blob_allowed = FALSE ambientsounds = HIGHSEC + canSmoothWithAreas = /area/shuttle/syndicate /area/shuttle/syndicate/bridge name = "Syndicate Infiltrator Control" @@ -37,6 +43,18 @@ /area/shuttle/syndicate/airlock name = "Syndicate Infiltrator Airlock" +////////////////////////////Pirate Shuttle//////////////////////////// + +/area/shuttle/pirate + name = "Pirate Shuttle" + blob_allowed = FALSE + requires_power = TRUE + canSmoothWithAreas = /area/shuttle/pirate + +/area/shuttle/pirate/vault + name = "Pirate Shuttle Vault" + requires_power = FALSE + ////////////////////////////Single-area shuttles//////////////////////////// /area/shuttle/transit @@ -114,12 +132,3 @@ /area/shuttle/syndicate_scout name = "Syndicate Scout" blob_allowed = FALSE - -/area/shuttle/pirate - name = "Pirate Shuttle" - blob_allowed = FALSE - requires_power = TRUE - -/area/shuttle/pirate/vault - name = "Pirate Shuttle Vault" - requires_power = FALSE \ No newline at end of file