diff --git a/code/__defines/map.dm b/code/__defines/map.dm index 45955c4df8..141f397e56 100644 --- a/code/__defines/map.dm +++ b/code/__defines/map.dm @@ -7,9 +7,15 @@ #define MAP_LEVEL_EMPTY 0x020 // Empty Z-levels that may be used for various things (currently used by bluespace jump) #define MAP_LEVEL_CONSOLES 0x040 // Z-levels available to various consoles, such as the crew monitor (when that gets coded in). Defaults to station_levels if unset. #define MAP_LEVEL_XENOARCH_EXEMPT 0x080 // Z-levels exempt from xenoarch digsite generation. +<<<<<<< HEAD #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_PERSIST 0x100 // Z-levels where SSpersistence should persist between rounds +#define MAP_LEVEL_MAPPABLE 0x200 // Z-levels where mapping units will work fully +#define MAP_LEVEL_BELOW_BLOCKED 0x400 // Z-levels in multiz with level below not meant to be 'normally' accessible +>>>>>>> d8b0ebf7b4e... Merge pull request #12208 from Heroman3003/tether-passage-block // 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 44fdcc0c82..24578b7f5c 100644 --- a/code/modules/multiz/ladder_assembly_vr.dm +++ b/code/modules/multiz/ladder_assembly_vr.dm @@ -86,6 +86,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)