diff --git a/code/__defines/map.dm b/code/__defines/map.dm index 45955c4df8..efe1152666 100644 --- a/code/__defines/map.dm +++ b/code/__defines/map.dm @@ -10,6 +10,7 @@ #define MAP_LEVEL_VORESPAWN 0x100 //CHOMPedit Z-levels players are allowed to late join to via vorish means. Usually non-dangerous locations. #define MAP_LEVEL_PERSIST 0x200 // Z-levels where SSpersistence should persist between rounds //CHOMPedit bumped to 0x200 because vorespawn, hopefully this doesn't break things #define MAP_LEVEL_MAPPABLE 0x400 // Z-levels where mapping units will work fully //CHOMPedit bumped to 0x400, somethingsomething don't break +#define MAP_LEVEL_BELOW_BLOCKED 0x800 // Z-levels in multiz with level below not meant to be 'normally' accessible //CHOMPedit bumped to 0x800, please god do not break // Misc map defines. #define SUBMAP_MAP_EDGE_PAD 8 // Automatically created submaps are forbidden from being this close to the main map's edge. //VOREStation Edit diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index 492f3ef65b..5c51101c52 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -28,7 +28,7 @@ if(N == /turf/space) var/turf/below = GetBelow(src) - if(istype(below) && (air_master.has_valid_zone(below) || air_master.has_valid_zone(src)) && (!istype(below, /turf/unsimulated/wall) && !istype(below, /turf/simulated/sky))) // VOREStation Edit: Weird open space + if(istype(below) && (air_master.has_valid_zone(below) || air_master.has_valid_zone(src)) && !(src.z in using_map.below_blocked_levels) && (!istype(below, /turf/unsimulated/wall) && !istype(below, /turf/simulated/sky))) // VOREStation Edit: Weird open space N = /turf/simulated/open var/obj/fire/old_fire = fire diff --git a/code/modules/multiz/ladder_assembly_vr.dm b/code/modules/multiz/ladder_assembly_vr.dm index 7e73dd5ccb..3512a3b07f 100644 --- a/code/modules/multiz/ladder_assembly_vr.dm +++ b/code/modules/multiz/ladder_assembly_vr.dm @@ -89,6 +89,8 @@ if(!T) continue var/obj/structure/ladder_assembly/LA = locate(/obj/structure/ladder_assembly, T) if(!LA) continue + if(direction == DOWN && (src.z in using_map.below_blocked_levels)) continue + if(direction == UP && (LA.z in using_map.below_blocked_levels)) continue if(LA.state != CONSTRUCTION_WELDED) to_chat(user, "\The [LA] [direction == UP ? "above" : "below"] must be secured and welded.") return diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm index 4ec8573307..cc5f227370 100644 --- a/maps/tether/tether_defines.dm +++ b/maps/tether/tether_defines.dm @@ -354,6 +354,7 @@ name = "Asteroid 1" base_turf = /turf/space transit_chance = 33 + flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_XENOARCH_EXEMPT|MAP_LEVEL_PERSIST|MAP_LEVEL_BELOW_BLOCKED holomap_offset_x = TETHER_HOLOMAP_MARGIN_X + TETHER_HOLOMAP_CENTER_GUTTER + TETHER_MAP_SIZE holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm index 5cbabb2aa3..c4df2d45ac 100644 --- a/maps/~map_system/maps.dm +++ b/maps/~map_system/maps.dm @@ -39,6 +39,7 @@ var/list/all_maps = list() var/static/list/empty_levels = list() // Empty Z-levels that may be used for various things var/static/list/vorespawn_levels = list() //Z-levels where players are allowed to vore latejoin to. //CHOMPedit: the number of missing chompedits is giving me an aneurysm var/static/list/mappable_levels = list()// List of levels where mapping or other similar devices might work fully + var/static/list/below_blocked_levels = list()// List of levels where mapping or other similar devices might work fully // End Static Lists // Z-levels available to various consoles, such as the crew monitor. Defaults to station_levels if unset. @@ -315,6 +316,9 @@ var/list/all_maps = list() if(flags & MAP_LEVEL_CONSOLES) if (!map.map_levels) map.map_levels = list() map.map_levels += z + if(flags & MAP_LEVEL_BELOW_BLOCKED) + if (!map.below_blocked_levels) map.below_blocked_levels = list() + map.below_blocked_levels += z if(base_turf) map.base_turf_by_z["[z]"] = base_turf if(transit_chance)