diff --git a/code/game/objects/structures/wall_frame.dm b/code/game/objects/structures/wall_frame.dm
new file mode 100644
index 0000000000..962b5be50e
--- /dev/null
+++ b/code/game/objects/structures/wall_frame.dm
@@ -0,0 +1,623 @@
+// Basically see-through walls. Used for windows
+// If nothing has been built on the low wall, you can climb on it
+
+/obj/structure/low_wall
+ name = "low wall"
+ desc = "A low wall section which serves as the base of windows, amongst other things."
+ layer = TURF_LAYER
+ icon = null
+ icon_state = "frame"
+
+ //atom_flags = ATOM_FLAG_NO_TEMP_CHANGE | ATOM_FLAG_CLIMBABLE | ATOM_FLAG_CAN_BE_PAINTED | ATOM_FLAG_ADJACENT_EXCEPTION
+ anchored = TRUE
+ density = TRUE
+ climbable = TRUE
+ throwpass = 1
+ layer = TABLE_LAYER
+
+ var/icon/frame_masks = 'icons/obj/wall_frame_bay.dmi'
+
+ var/health = 100
+ var/stripe_color
+ //rad_resistance_modifier = 0.5
+
+ // blend_objects defined on subtypes
+ noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
+
+ var/default_material = DEFAULT_WALL_MATERIAL
+ var/datum/material/material
+ var/grille_type
+
+/obj/structure/low_wall/Initialize(var/mapload, var/materialtype)
+ . = ..()
+ icon_state = "blank"
+ var/turf/T = loc
+ if(!isturf(T) || T.density || T.opacity)
+ warning("[src] on invalid turf [T] at [x],[y],[z]")
+ return INITIALIZE_HINT_QDEL
+
+ if(!materialtype)
+ materialtype = default_material
+
+ material = get_material_by_name(materialtype)
+
+ health = material.integrity
+
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/low_wall/LateInitialize()
+ . = ..()
+ update_connections(1)
+ update_icon()
+
+/obj/structure/low_wall/Destroy()
+ var/turf/location = loc
+ . = ..()
+ for(var/obj/structure/low_wall/W in orange(1, location))
+ W.update_connections()
+ W.update_icon()
+
+
+/obj/structure/low_wall/examine(mob/user)
+ . = ..()
+
+ if(health == material.integrity)
+ to_chat(user, "It seems to be in fine condition.")
+ else
+ var/dam = health / material.integrity
+ if(dam <= 0.3)
+ to_chat(user, "It's got a few dents and scratches.")
+ else if(dam <= 0.7)
+ to_chat(user, "A few pieces of panelling have fallen off.")
+ else
+ to_chat(user, "It's nearly falling to pieces.")
+
+/obj/structure/low_wall/attackby(var/obj/item/W, var/mob/user, var/hit_modifier, var/click_parameters)
+ src.add_fingerprint(user)
+
+ // Making grilles (only works on Bay ones currently)
+ if(istype(W, /obj/item/stack/rods))
+ handle_rod_use(user, W)
+ return
+
+ // Making windows, different per subtype
+ else if(istype(W, /obj/item/stack/material/glass))
+ handle_glass_use(user, W)
+ return
+
+ // Dismantling the half wall
+ if(W.is_wrench())
+ for(var/obj/structure/S in loc)
+ if(istype(S, /obj/structure/window))
+ to_chat(user, "There is still a window on the low wall!")
+ return
+ else if(istype(S, /obj/structure/grille))
+ to_chat(user, "There is still a grille on the low wall!")
+ return
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ to_chat(user, "Now disassembling the low wall...")
+ if(do_after(user, 40, src))
+ to_chat(user, "You dissasembled the low wall!")
+ dismantle()
+
+ // Handle placing things
+ if(isrobot(user))
+ return
+
+ if(W.loc != user) // This should stop mounted modules ending up outside the module.
+ return
+
+ if(can_place_items() && user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement))
+ auto_align(W, click_parameters)
+ return 1
+
+ return ..()
+
+/obj/structure/low_wall/proc/can_place_items()
+ for(var/obj/structure/S in loc)
+ if(S == src)
+ continue
+ if(S.density)
+ return FALSE
+ return TRUE
+
+/obj/structure/low_wall/MouseDrop_T(obj/O as obj, mob/user as mob)
+ if(istype(O, /obj/structure/window))
+ var/obj/structure/window/W = O
+ if(Adjacent(W) && !W.anchored)
+ to_chat("You hoist [W] up onto [src].")
+ W.forceMove(loc)
+ return
+ if ((!( istype(O, /obj/item/weapon) ) || user.get_active_hand() != O))
+ return ..()
+ if(isrobot(user))
+ return
+ if(can_place_items())
+ user.unEquip(O, 0, src.loc)
+
+/obj/structure/low_wall/proc/handle_rod_use(mob/user, obj/item/stack/rods/R)
+ if(!grille_type)
+ to_chat(user, "This type of wall frame doesn't support grilles.")
+ return
+ for(var/obj/structure/window/WINDOW in loc)
+ if(WINDOW.dir == get_dir(src, user))
+ to_chat(user, "There is a window in the way.")
+ return
+ if(R.get_amount() < 2)
+ to_chat(user, "You need at least two rods to do this.")
+ return
+ to_chat(user, "Assembling grille...")
+ if(!do_after(user, 1 SECONDS, R, exclusive = TASK_ALL_EXCLUSIVE))
+ return
+ if(!R.use(2))
+ return
+ new grille_type(loc)
+ return
+
+/obj/structure/low_wall/proc/handle_glass_use(mob/user, obj/item/stack/material/glass/G)
+ var/window_type = get_window_build_type(user, G)
+ if(!window_type)
+ to_chat(user, "You can't build that type of window on this type of low wall.")
+ return
+ for(var/obj/structure/window/WINDOW in loc)
+ if(WINDOW.dir == get_dir(src, user))
+ to_chat(user, "There is already a window here.")
+ return
+ if(G.get_amount() < 4)
+ to_chat(user, "You need at least four sheets of glass to do this.")
+ return
+ to_chat(user, "Assembling window...")
+ if(!do_after(user, 4 SECONDS, G, exclusive = TASK_ALL_EXCLUSIVE))
+ return
+ if(!G.use(2))
+ return
+ new window_type(loc, null, TRUE)
+ return
+
+/obj/structure/low_wall/proc/get_window_build_type(mob/user, obj/item/stack/material/glass/G)
+ return null
+
+/obj/structure/low_wall/CanPass(atom/movable/mover, turf/target)
+ if(istype(mover,/obj/item/projectile))
+ return TRUE
+ if(istype(mover) && mover.checkpass(PASSTABLE))
+ return TRUE
+ return FALSE
+
+// Bay's version
+/obj/structure/low_wall/bay/update_icon()
+ cut_overlays()
+
+ var/image/I
+ var/main_color = material.icon_colour
+ for(var/i = 1 to 4)
+ if(other_connections[i] != "0")
+ I = image(icon, "frame_other[other_connections[i]]", dir = 1<<(i-1))
+ I.color = main_color
+ else
+ I = image(icon, "frame[connections[i]]", dir = 1<<(i-1))
+ I.color = main_color
+ add_overlay(I)
+
+ if(stripe_color)
+ for(var/i = 1 to 4)
+ if(other_connections[i] != "0")
+ I = image(icon, "stripe_other[other_connections[i]]", dir = 1<<(i-1))
+ else
+ I = image(icon, "stripe[connections[i]]", dir = 1<<(i-1))
+ I.color = stripe_color
+ add_overlay(I)
+
+// Eris's version
+/obj/structure/low_wall/eris/update_icon()
+ cut_overlays()
+
+ var/image/I
+ var/main_color = material.icon_colour
+ for(var/i = 1 to 4)
+ I = image(icon, "frame[connections[i]]", dir = 1<<(i-1))
+ I.color = main_color
+ add_overlay(I)
+
+ if(other_connections[i] != "0")
+ I = image(icon, "frame_other[other_connections[i]]", dir = 1<<(i-1))
+ I.plane = ABOVE_OBJ_PLANE
+ I.layer = ABOVE_WINDOW_LAYER
+ I.color = main_color
+ add_overlay(I)
+
+/obj/structure/low_wall/bullet_act(var/obj/item/projectile/Proj)
+ var/proj_damage = Proj.get_structure_damage()
+ var/damage = min(proj_damage, 100)
+ take_damage(damage)
+ return
+
+/obj/structure/low_wall/hitby(AM as mob|obj, var/speed)
+ ..()
+ var/tforce = 0
+ if(ismob(AM)) // All mobs have a multiplier and a size according to mob_defines.dm
+ var/mob/I = AM
+ tforce = I.mob_size * (speed/THROWFORCE_SPEED_DIVISOR)
+ else
+ var/obj/O = AM
+ tforce = O.throwforce * (speed/THROWFORCE_SPEED_DIVISOR)
+ if (tforce < 15)
+ return
+ take_damage(tforce)
+
+/obj/structure/low_wall/take_damage(damage)
+ health -= damage
+ if(health <= 0)
+ dismantle()
+
+/obj/structure/low_wall/attack_generic(var/mob/user, var/damage, var/attack_verb)
+ visible_message("[user] [attack_verb] the [src]!")
+ user.do_attack_animation(src)
+ take_damage(damage)
+ return ..()
+
+/obj/structure/low_wall/proc/dismantle()
+ var/stacktype = material?.stack_type
+ if(stacktype)
+ new stacktype(get_turf(src), 3)
+ // If we were violently dismantled
+ for(var/obj/structure/window/W in loc)
+ if(W.anchored)
+ W.shatter()
+ for(var/obj/structure/grille/G in loc)
+ if(G.anchored)
+ G.health = 0
+ G.healthcheck()
+ qdel(src)
+
+/**
+ * The two 'real' types
+ */
+/obj/structure/low_wall/bay
+ icon = 'icons/obj/wall_frame_bay.dmi'
+ grille_type = /obj/structure/grille/bay
+ blend_objects = list(/obj/machinery/door, /turf/simulated/wall/bay)
+
+/obj/structure/low_wall/bay/reinforced
+ default_material = MAT_PLASTEEL
+
+/obj/structure/low_wall/bay/get_window_build_type(mob/user, obj/item/stack/material/glass/G)
+ switch(G.material.name)
+ if(MAT_GLASS)
+ return /obj/structure/window/bay
+ if(MAT_RGLASS)
+ return /obj/structure/window/bay/reinforced
+ if(MAT_PGLASS)
+ return /obj/structure/window/bay/phoronbasic
+ if(MAT_RPGLASS)
+ return /obj/structure/window/bay/phoronreinforced
+
+/obj/structure/low_wall/eris
+ icon = 'icons/obj/wall_frame_eris.dmi'
+ grille_type = null
+ blend_objects = list(/obj/machinery/door, /turf/simulated/wall/eris)
+
+/obj/structure/low_wall/eris/reinforced
+ default_material = MAT_PLASTEEL
+
+/obj/structure/low_wall/eris/get_window_build_type(mob/user, obj/item/stack/material/glass/G)
+ switch(G.material.name)
+ if(MAT_GLASS)
+ return /obj/structure/window/eris
+ if(MAT_RGLASS)
+ return /obj/structure/window/eris/reinforced
+ if(MAT_PGLASS)
+ return /obj/structure/window/eris/phoronbasic
+ if(MAT_RPGLASS)
+ return /obj/structure/window/eris/phoronreinforced
+
+/**
+ * Bay's fancier icon grilles
+ */
+/obj/structure/grille/bay
+ icon = 'icons/obj/bay_grille.dmi'
+ blend_objects = list(/obj/machinery/door, /turf/simulated/wall/bay) // Objects which to blend with
+ noblend_objects = list(/obj/machinery/door/window)
+ color = "#666666"
+
+/obj/structure/grille/bay/Initialize()
+ . = ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/grille/bay/LateInitialize()
+ . = ..()
+ update_connections(1)
+ update_icon()
+
+/obj/structure/grille/bay/Destroy()
+ var/turf/location = loc
+ . = ..()
+ for(var/obj/structure/grille/G in orange(1, location))
+ G.update_connections()
+ G.update_icon()
+
+/obj/structure/grille/bay/update_icon()
+ var/on_frame = locate(/obj/structure/low_wall/bay) in loc
+
+ cut_overlays()
+ if(destroyed)
+ if(on_frame)
+ icon_state = "broke_onframe"
+ else
+ icon_state = "broken"
+ else
+ var/image/I
+ icon_state = ""
+ if(on_frame)
+ for(var/i = 1 to 4)
+ if(other_connections[i] != "0")
+ I = image(icon, "grille_other_onframe[connections[i]]", dir = 1<<(i-1))
+ else
+ I = image(icon, "grille_onframe[connections[i]]", dir = 1<<(i-1))
+ add_overlay(I)
+ else
+ for(var/i = 1 to 4)
+ if(other_connections[i] != "0")
+ I = image(icon, "grille_other[connections[i]]", dir = 1<<(i-1))
+ else
+ I = image(icon, "grille[connections[i]]", dir = 1<<(i-1))
+ add_overlay(I)
+
+/**
+ * The window types for both types of short walls
+ */
+/obj/structure/window/bay
+ icon = 'icons/obj/bay_window.dmi'
+ blend_objects = list(/obj/machinery/door, /turf/simulated/wall/bay)
+ noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
+ icon_state = "preview_glass"
+ basestate = "window"
+ alpha = 180
+ flags = 0
+ fulltile = TRUE
+ maxhealth = 24
+ glasstype = /obj/item/stack/material/glass
+
+/obj/structure/window/bay/Initialize()
+ . = ..()
+ var/obj/item/stack/material/glass/G = glasstype
+ var/datum/material/M = get_material_by_name(initial(G.default_type))
+ color = M.icon_colour
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/window/bay/LateInitialize()
+ . = ..()
+ icon_state = ""
+ update_icon()
+
+/obj/structure/window/bay/update_icon()
+ cut_overlays()
+ if(!anchored)
+ connections = list("0","0","0","0")
+ other_connections = list("0","0","0","0")
+ else
+ update_connections()
+
+ var/percent_damage = 0 // Used for icon state of damage layer
+ var/damage_alpha = 0 // Used for alpha blending of damage layer
+ if (maxhealth && health < maxhealth)
+ percent_damage = (maxhealth - health) / maxhealth // Percentage of damage received (Not health remaining)
+ percent_damage = round(percent_damage, 0.25) // Round to nearest multiple of 25
+ damage_alpha = 256 * percent_damage - 1
+
+ var/img_dir
+ var/image/I
+ for(var/i = 1 to 4)
+ img_dir = 1<<(i-1)
+ if(other_connections[i] != "0")
+ I = image(icon, "[basestate]_other_onframe[other_connections[i]]", dir = img_dir)
+ I.color = color
+ else
+ I = image(icon, "[basestate]_onframe[connections[i]]", dir = img_dir)
+ I.color = color
+ add_overlay(I)
+
+ if(damage_alpha)
+ var/image/D
+ D = image(icon, "window0_damage", dir = img_dir)
+ D.blend_mode = BLEND_MULTIPLY
+ D.alpha = damage_alpha
+ add_overlay(D)
+
+/obj/structure/window/bay/reinforced
+ name = "reinforced window"
+ desc = "It looks rather strong. Might take a few good hits to shatter it."
+ icon_state = "preview_rglass"
+ basestate = "rwindow"
+ maxhealth = 80
+ reinf = 1
+ maximal_heat = T0C + 750
+ damage_per_fire_tick = 2.0
+ glasstype = /obj/item/stack/material/glass/reinforced
+ force_threshold = 6
+
+/obj/structure/window/bay/phoronbasic
+ name = "phoron window"
+ desc = "A borosilicate alloy window. It seems to be quite strong."
+ icon_state = "preview_phoron"
+ shardtype = /obj/item/weapon/material/shard/phoron
+ glasstype = /obj/item/stack/material/glass/phoronglass
+ maximal_heat = T0C + 2000
+ damage_per_fire_tick = 1.0
+ maxhealth = 40.0
+ force_threshold = 5
+ maxhealth = 80
+
+/obj/structure/window/bay/phoronreinforced
+ name = "reinforced borosilicate window"
+ desc = "A borosilicate alloy window, with rods supporting it. It seems to be very strong."
+ icon_state = "preview_rphoron"
+ basestate = "rwindow"
+ shardtype = /obj/item/weapon/material/shard/phoron
+ glasstype = /obj/item/stack/material/glass/phoronrglass
+ reinf = 1
+ maximal_heat = T0C + 4000
+ damage_per_fire_tick = 1.0 // This should last for 80 fire ticks if the window is not damaged at all. The idea is that borosilicate windows have something like ablative layer that protects them for a while.
+ maxhealth = 160
+ force_threshold = 10
+
+
+/obj/structure/window/eris
+ icon = 'icons/obj/eris_window.dmi'
+ blend_objects = list(/obj/machinery/door, /turf/simulated/wall/eris)
+ noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
+ icon_state = "preview_glass"
+ basestate = "window"
+ fulltile = TRUE
+ maxhealth = 24
+ alpha = 150
+
+/obj/structure/window/eris/Initialize()
+ . = ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/window/eris/LateInitialize()
+ . = ..()
+ icon_state = ""
+ update_icon()
+
+/obj/structure/window/eris/update_icon()
+ cut_overlays()
+ if(!anchored)
+ connections = list("0","0","0","0")
+ other_connections = list("0","0","0","0")
+ else
+ update_connections()
+
+ var/img_dir
+ var/image/I
+ for(var/i = 1 to 4)
+ img_dir = 1<<(i-1)
+ if(other_connections[i] != "0")
+ I = image(icon, "[basestate][other_connections[i]]", dir = img_dir)
+ else
+ I = image(icon, "[basestate][connections[i]]", dir = img_dir)
+ add_overlay(I)
+
+/obj/structure/window/eris/reinforced
+ name = "reinforced window"
+ desc = "It looks rather strong. Might take a few good hits to shatter it."
+ icon_state = "preview_rglass"
+ basestate = "rwindow"
+ maxhealth = 80
+ reinf = 1
+ maximal_heat = T0C + 750
+ damage_per_fire_tick = 2.0
+ glasstype = /obj/item/stack/material/glass/reinforced
+ force_threshold = 6
+
+/obj/structure/window/eris/phoronbasic
+ name = "phoron window"
+ desc = "A borosilicate alloy window. It seems to be quite strong."
+ basestate = "preview_phoron"
+ icon_state = "pwindow"
+ shardtype = /obj/item/weapon/material/shard/phoron
+ glasstype = /obj/item/stack/material/glass/phoronglass
+ maximal_heat = T0C + 2000
+ damage_per_fire_tick = 1.0
+ maxhealth = 40.0
+ force_threshold = 5
+ maxhealth = 80
+
+/obj/structure/window/eris/phoronreinforced
+ name = "reinforced borosilicate window"
+ desc = "A borosilicate alloy window, with rods supporting it. It seems to be very strong."
+ basestate = "preview_rphoron"
+ icon_state = "rpwindow"
+ shardtype = /obj/item/weapon/material/shard/phoron
+ glasstype = /obj/item/stack/material/glass/phoronrglass
+ reinf = 1
+ maximal_heat = T0C + 4000
+ damage_per_fire_tick = 1.0 // This should last for 80 fire ticks if the window is not damaged at all. The idea is that borosilicate windows have something like ablative layer that protects them for a while.
+ maxhealth = 160
+ force_threshold = 10
+
+/**
+ * Spawner helpers for mapping these in
+ */
+
+/obj/effect/low_wall_spawner
+ name = "low wall spawner"
+
+ var/low_wall_type
+ var/window_type
+ var/grille_type
+
+ icon = null
+
+/obj/effect/low_wall_spawner/Initialize()
+ . = ..()
+ if(locate(/obj/effect/low_wall_spawner) in oview(0, src))
+ warning("Duplicate low wall spawners in [x],[y],[z]!")
+ return INITIALIZE_HINT_QDEL
+
+ if(low_wall_type)
+ new low_wall_type(loc)
+ if(grille_type)
+ new grille_type(loc)
+ if(window_type)
+ new window_type(loc)
+
+ return INITIALIZE_HINT_QDEL
+
+// Bay types
+/obj/effect/low_wall_spawner/bay
+ icon = 'icons/obj/wall_frame_bay.dmi'
+ icon_state = "sp_glass"
+ low_wall_type = /obj/structure/low_wall/bay
+ window_type = /obj/structure/window/bay
+
+/obj/effect/low_wall_spawner/bay/rglass
+ icon_state = "sp_rglass"
+ window_type = /obj/structure/window/bay/reinforced
+
+/obj/effect/low_wall_spawner/bay/phoron
+ icon_state = "sp_phoron"
+ window_type = /obj/structure/window/bay/phoronbasic
+
+/obj/effect/low_wall_spawner/bay/rphoron
+ icon_state = "sp_rphoron"
+ window_type = /obj/structure/window/bay/phoronreinforced
+
+/obj/effect/low_wall_spawner/bay/grille
+ icon = 'icons/obj/wall_frame_bay.dmi'
+ icon_state = "sp_glass_g"
+ low_wall_type = /obj/structure/low_wall/bay
+ grille_type = /obj/structure/grille/bay
+ window_type = /obj/structure/window/bay
+
+/obj/effect/low_wall_spawner/bay/grille/rglass
+ icon_state = "sp_rglass_g"
+ window_type = /obj/structure/window/bay/reinforced
+
+/obj/effect/low_wall_spawner/bay/grille/phoron
+ icon_state = "sp_phoron_g"
+ window_type = /obj/structure/window/bay/phoronbasic
+
+/obj/effect/low_wall_spawner/bay/grille/rphoron
+ icon_state = "sp_rphoron_g"
+ window_type = /obj/structure/window/bay/phoronreinforced
+
+// Eris types
+/obj/effect/low_wall_spawner/eris
+ icon = 'icons/obj/wall_frame_eris.dmi'
+ icon_state = "sp_glass"
+ low_wall_type = /obj/structure/low_wall/eris
+ window_type = /obj/structure/window/eris
+
+/obj/effect/low_wall_spawner/eris/rglass
+ icon_state = "sp_rglass"
+ window_type = /obj/structure/window/eris/reinforced
+
+/obj/effect/low_wall_spawner/eris/phoron
+ icon_state = "sp_phoron"
+ window_type = /obj/structure/window/eris/phoronbasic
+
+/obj/effect/low_wall_spawner/eris/rphoron
+ icon_state = "sp_rphoron"
+ window_type = /obj/structure/window/eris/phoronreinforced
diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm
index b6193f4942..9122f46e46 100644
--- a/code/game/turfs/simulated/wall_icon.dm
+++ b/code/game/turfs/simulated/wall_icon.dm
@@ -113,6 +113,10 @@
if(can_join_with(W))
dirs += get_dir(src, W)
+ special_wall_connections(dirs, inrange)
+ wall_connections = dirs_to_corner_states(dirs)
+
+/turf/simulated/wall/proc/special_wall_connections(list/dirs, list/inrange)
if(material.icon_base == "hull") // Could be improved...
var/additional_dirs = 0
for(var/direction in alldirs)
@@ -125,10 +129,18 @@
if ((additional_dirs & diag_dir) == diag_dir)
dirs += diag_dir
+<<<<<<< HEAD
wall_connections = dirs_to_corner_states(dirs)
/turf/simulated/wall/proc/can_join_with(var/turf/simulated/wall/W)
//VOREStation Edit Start
+||||||| parent of 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
+ wall_connections = dirs_to_corner_states(dirs)
+
+/turf/simulated/wall/proc/can_join_with_wall(var/turf/simulated/wall/W)
+=======
+/turf/simulated/wall/proc/can_join_with_wall(var/turf/simulated/wall/W)
+>>>>>>> 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
//No blending if no material
if(!material || !W.material)
return 0
diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm
index c64537d52f..624ec9f9be 100644
--- a/code/game/turfs/simulated/wall_types.dm
+++ b/code/game/turfs/simulated/wall_types.dm
@@ -371,3 +371,134 @@
/obj/structure/hull_corner/long_horiz/get_dirs_to_test()
return list(dir, turn(dir,90), turn(dir,-90))
+<<<<<<< HEAD
+||||||| parent of 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
+
+
+
+// Eris walls
+/turf/simulated/wall/eris
+ icon = 'icons/turf/wall_masks_eris.dmi'
+ icon_state = "generic"
+ wall_masks = 'icons/turf/wall_masks_eris.dmi'
+
+/turf/simulated/wall/eris/can_join_with_low_wall(var/obj/structure/low_wall/WF)
+ return istype(WF, /obj/structure/low_wall/eris)
+
+/turf/simulated/wall/eris/r_wall
+ icon_state = "rgeneric"
+/turf/simulated/wall/eris/r_wall/Initialize(mapload)
+ . = ..(mapload, "plasteel","plasteel")
+
+// Bay walls
+/turf/simulated/wall/bay
+ icon = 'icons/turf/wall_masks_bay.dmi'
+ icon_state = "generic"
+ wall_masks = 'icons/turf/wall_masks_bay.dmi'
+
+ var/stripe_color // Adds a colored stripe to the walls
+
+/turf/simulated/wall/bay/can_join_with_low_wall(var/obj/structure/low_wall/WF)
+ return istype(WF, /obj/structure/low_wall/bay)
+
+/turf/simulated/wall/bay/update_icon()
+ . = ..()
+ if(stripe_color)
+ var/image/I
+ for(var/i = 1 to 4)
+ I = image(wall_masks, "stripe[wall_connections[i]]", dir = 1<<(i-1))
+ I.color = stripe_color
+ add_overlay(I)
+
+/turf/simulated/wall/bay/r_wall
+ icon_state = "rgeneric"
+/turf/simulated/wall/bay/r_wall/Initialize(mapload)
+ . = ..(mapload, "plasteel","plasteel")
+=======
+
+
+
+// Eris walls
+/turf/simulated/wall/eris
+ icon = 'icons/turf/wall_masks_eris.dmi'
+ icon_state = "generic"
+ wall_masks = 'icons/turf/wall_masks_eris.dmi'
+ var/list/blend_objects = list(/obj/machinery/door)
+ var/list/noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
+
+/turf/simulated/wall/eris/can_join_with_low_wall(var/obj/structure/low_wall/WF)
+ return istype(WF, /obj/structure/low_wall/eris)
+/turf/simulated/wall/eris/special_wall_connections(list/dirs, list/inrange)
+ ..()
+ for(var/direction in cardinal)
+ var/turf/T = get_step(src, direction)
+ var/decided_to_blend = FALSE
+ blend_obj_loop:
+ for(var/obj/O in T)
+ for(var/b_type in blend_objects)
+ if(istype(O, b_type))
+ decided_to_blend = TRUE
+ for(var/obj/structure/S in T)
+ if(istype(S, src))
+ decided_to_blend = FALSE
+ for(var/nb_type in noblend_objects)
+ if(istype(O, nb_type))
+ decided_to_blend = FALSE
+
+ if(decided_to_blend)
+ dirs += direction
+ break blend_obj_loop // breaks outer loop
+
+/turf/simulated/wall/eris/r_wall
+ icon_state = "rgeneric"
+/turf/simulated/wall/eris/r_wall/Initialize(mapload)
+ . = ..(mapload, "plasteel","plasteel")
+
+// Bay walls
+/turf/simulated/wall/bay
+ icon = 'icons/turf/wall_masks_bay.dmi'
+ icon_state = "generic"
+ wall_masks = 'icons/turf/wall_masks_bay.dmi'
+ var/list/blend_objects = list(/obj/machinery/door)
+ var/list/noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
+
+ var/stripe_color // Adds a colored stripe to the walls
+
+/turf/simulated/wall/bay/can_join_with_low_wall(var/obj/structure/low_wall/WF)
+ return istype(WF, /obj/structure/low_wall/bay)
+
+/turf/simulated/wall/bay/update_icon()
+ . = ..()
+ if(stripe_color)
+ var/image/I
+ for(var/i = 1 to 4)
+ I = image(wall_masks, "stripe[wall_connections[i]]", dir = 1<<(i-1))
+ I.color = stripe_color
+ add_overlay(I)
+
+/turf/simulated/wall/bay/special_wall_connections(list/dirs, list/inrange)
+ ..()
+ for(var/direction in cardinal)
+ var/turf/T = get_step(src, direction)
+ var/decided_to_blend = FALSE
+ blend_obj_loop:
+ for(var/obj/O in T)
+ for(var/b_type in blend_objects)
+ if(istype(O, b_type))
+ decided_to_blend = TRUE
+ for(var/obj/structure/S in T)
+ if(istype(S, src))
+ decided_to_blend = FALSE
+ for(var/nb_type in noblend_objects)
+ if(istype(O, nb_type))
+ decided_to_blend = FALSE
+
+ if(decided_to_blend)
+ dirs += direction
+ break blend_obj_loop // breaks outer loop
+
+/turf/simulated/wall/bay/r_wall
+ icon_state = "rgeneric"
+/turf/simulated/wall/bay/r_wall/Initialize(mapload)
+ . = ..(mapload, "plasteel","plasteel")
+>>>>>>> 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
diff --git a/maps/offmap_vr/om_ships/aro3.dmm b/maps/offmap_vr/om_ships/aro3.dmm
index f31d589f73..bcb0f9e836 100644
--- a/maps/offmap_vr/om_ships/aro3.dmm
+++ b/maps/offmap_vr/om_ships/aro3.dmm
@@ -43,9 +43,18 @@
icon_state = "4-8"
},
/turf/simulated/floor/tiled/eris/dark/danger,
+<<<<<<< HEAD
/area/space)
+||||||| parent of 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
+/area/aro3/flight_deck)
+=======
+/area/aro3/flight_deck)
+"ap" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/suite_port)
+>>>>>>> 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
"aq" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/power)
"at" = (
/obj/structure/cable/cyan{
@@ -133,7 +142,7 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/suite_starboard)
"aY" = (
/obj/structure/railing/grey{
@@ -182,7 +191,7 @@
/obj/structure/cable/cyan{
icon_state = "1-8"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/cockpit)
"bs" = (
/obj/machinery/power/rtg/abductor/hybrid/built,
@@ -267,7 +276,9 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"cc" = (
/obj/structure/closet/walllocker/emerglocker/north,
@@ -327,10 +338,8 @@
/turf/simulated/floor/tiled/eris/dark/gray_platform,
/area/aro3/hallway_bunkrooms)
"cB" = (
-/obj/structure/window/plastitanium/full,
-/obj/structure/grille,
-/turf/simulated/floor/plating/eris/under,
-/area/space)
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/eva_hall)
"cH" = (
/turf/simulated/floor/water/indoors/surfluid,
/area/aro3/surfluid)
@@ -559,7 +568,9 @@
/turf/simulated/floor/carpet/turcarpet,
/area/aro3/suite_starboard)
"el" = (
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"em" = (
/obj/structure/table/darkglass,
@@ -664,7 +675,7 @@
/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
/area/aro3/hallway_bunkrooms)
"ff" = (
-/obj/structure/window/plastitanium/full,
+/obj/effect/low_wall_spawner/eris/rglass,
/turf/simulated/floor/plating/eris/under,
/area/aro3/repair_bay)
"fo" = (
@@ -695,7 +706,7 @@
/turf/simulated/floor/tiled/eris/steel/bar_light,
/area/aro3/bar)
"fB" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/atmos)
"fC" = (
/obj/machinery/light{
@@ -707,7 +718,7 @@
/obj/structure/cable/cyan{
icon_state = "1-4"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/cockpit)
"fL" = (
/turf/simulated/wall/rpshull,
@@ -1001,6 +1012,9 @@
},
/turf/simulated/wall/rpshull,
/area/space)
+"hM" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/suite_starboard)
"hN" = (
/obj/structure/cable/cyan{
icon_state = "4-8"
@@ -1057,8 +1071,7 @@
/turf/simulated/floor/tiled/eris/dark/gray_perforated,
/area/aro3/power)
"iy" = (
-/obj/structure/window/plastitanium/full,
-/obj/structure/grille,
+/obj/effect/low_wall_spawner/eris/rglass,
/turf/simulated/floor/plating/eris/under,
/area/aro3/cockpit)
"iB" = (
@@ -1210,7 +1223,9 @@
dir = 1;
pixel_y = -26
},
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"jx" = (
/obj/structure/closet/crate/medical/blood,
@@ -1237,6 +1252,7 @@
},
/turf/simulated/floor/reinforced/airless,
/area/space)
+<<<<<<< HEAD
"jM" = (
/obj/structure/railing/grey{
dir = 4
@@ -1246,6 +1262,12 @@
},
/turf/simulated/floor/water/indoors/surfluid,
/area/aro3/function)
+||||||| parent of 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
+=======
+"jM" = (
+/turf/space/internal_edge/right,
+/area/aro3/park)
+>>>>>>> 7857275f5a... Merge pull request #11213 from VOREStation/Arokha/aro3
"jO" = (
/obj/machinery/atmospherics/pipe/simple/visible/universal{
dir = 8
@@ -1497,7 +1519,7 @@
/turf/simulated/floor/tiled/eris/white,
/area/aro3/wc_starboard)
"lu" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/park)
"lv" = (
/obj/structure/table/woodentable,
@@ -1535,7 +1557,7 @@
/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
/area/aro3/hallway_port)
"lO" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/medical)
"lP" = (
/obj/structure/cable/cyan{
@@ -1667,8 +1689,13 @@
/turf/simulated/floor/plating/eris/under,
/area/aro3/power)
"mX" = (
-/obj/structure/flora/tree/jungle_small,
-/turf/simulated/floor/outdoors/grass/heavy,
+/obj/structure/flora/tree/jungle_small{
+ pixel_x = -38;
+ pixel_y = 7
+ },
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"nb" = (
/obj/machinery/light_switch{
@@ -1720,7 +1747,7 @@
/turf/simulated/floor/tiled/eris/dark,
/area/aro3/function)
"ns" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/function)
"ny" = (
/obj/structure/cable/cyan{
@@ -2011,7 +2038,9 @@
"qh" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"qi" = (
/obj/machinery/power/apc/alarms_hidden{
@@ -2139,7 +2168,7 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/suite_starboard_wc)
"re" = (
/turf/simulated/floor/tiled/eris/dark/gray_perforated,
@@ -2207,7 +2236,9 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"rJ" = (
/obj/structure/cable/cyan{
@@ -2237,6 +2268,15 @@
},
/turf/simulated/floor/plating/eris/under,
/area/aro3/power)
+"rR" = (
+/obj/structure/flora/tree/jungle_small{
+ pixel_x = -27;
+ pixel_y = -3
+ },
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
+/area/aro3/park)
"rU" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -2555,7 +2595,7 @@
/obj/structure/cable/cyan{
icon_state = "4-8"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/bar)
"vJ" = (
/obj/machinery/light,
@@ -2616,7 +2656,9 @@
/obj/structure/cable/cyan{
icon_state = "0-8"
},
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"wc" = (
/obj/structure/lattice,
@@ -3020,7 +3062,9 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"yQ" = (
/obj/machinery/power/apc/alarms_hidden{
@@ -3114,7 +3158,7 @@
/turf/simulated/floor/tiled/eris/steel/panels,
/area/aro3/eva_hall)
"zo" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/bunkrooms)
"zq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -3202,7 +3246,7 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/atmos)
"zM" = (
/obj/structure/cable/cyan{
@@ -3446,7 +3490,7 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/suite_port_wc)
"Ci" = (
/obj/effect/floor_decal/industrial/hatch/yellow,
@@ -29812,7 +29856,8 @@ Ua
/turf/simulated/floor/tiled/eris/steel/bar_dance,
/area/aro3/bar)
"Fy" = (
-/turf/simulated/wall/rpshull,
+/obj/effect/low_wall_spawner/eris/rglass,
+/turf/simulated/floor/plating/eris/under,
/area/aro3/kitchen)
"FE" = (
/obj/machinery/light{
@@ -29949,7 +29994,7 @@ Ua
/turf/simulated/floor/tiled/eris/dark/danger,
/area/aro3/flight_deck)
"Hd" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/hallway_starboard)
"Hh" = (
/turf/simulated/floor/plating/eris/under,
@@ -30038,7 +30083,7 @@ Ua
/turf/simulated/floor/tiled/eris/dark/gray_platform,
/area/aro3/repair_bay)
"HJ" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/wc_port)
"HL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -30072,6 +30117,19 @@ Ua
},
/turf/simulated/floor/tiled/eris/dark,
/area/aro3/atmos)
+"Io" = (
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/machinery/alarm/alarms_hidden{
+ dir = 4;
+ pixel_x = -26
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/aro3/hallway_port)
+"Iq" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/flight_deck)
"Is" = (
/turf/simulated/floor/tiled/eris/dark/danger,
/area/aro3/repair_bay)
@@ -30111,12 +30169,15 @@ Ua
},
/turf/simulated/floor/tiled/eris/dark,
/area/aro3/surfluid)
+"IR" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/wc_starboard)
"IS" = (
/obj/effect/floor_decal/industrial/hatch,
/turf/simulated/floor/tiled/eris/dark/gray_platform,
/area/aro3/repair_bay)
"IT" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/hallway_port)
"IX" = (
/obj/structure/cable/cyan{
@@ -30134,7 +30195,7 @@ Ua
/turf/simulated/floor/tiled/eris/steel/panels,
/area/aro3/function)
"Jj" = (
-/obj/structure/window/plastitanium/full,
+/obj/effect/low_wall_spawner/eris/rglass,
/turf/simulated/floor/plating/eris/under,
/area/aro3/flight_deck)
"Jl" = (
@@ -30190,7 +30251,9 @@ Ua
dir = 1;
pixel_y = -24
},
-/turf/simulated/floor/outdoors/grass/heavy,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"Kl" = (
/obj/structure/table/woodentable,
@@ -30207,7 +30270,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/suite_port)
"Kp" = (
/obj/structure/table/glass,
@@ -30221,7 +30284,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "4-8"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/hallway_bunkrooms)
"Kw" = (
/obj/machinery/pointdefense_control{
@@ -30245,10 +30308,7 @@ Ua
/turf/simulated/floor/tiled/eris/steel/panels,
/area/aro3/hallway_starboard)
"KB" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/simulated/floor/water/deep/indoors,
+/turf/space/internal_edge/topleft,
/area/aro3/park)
"KC" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -30271,7 +30331,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "4-8"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/cockpit)
"KI" = (
/obj/machinery/power/pointdefense{
@@ -30328,6 +30388,9 @@ Ua
},
/turf/simulated/floor/carpet/turcarpet,
/area/aro3/suite_port)
+"Lb" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/bar)
"Le" = (
/obj/machinery/light{
dir = 8
@@ -30494,7 +30557,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "1-4"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/atmos)
"Mh" = (
/obj/structure/lattice,
@@ -30517,18 +30580,11 @@ Ua
/turf/simulated/floor/plating/eris/under,
/area/aro3/atmos)
"Ml" = (
-/obj/structure/cable/cyan{
- icon_state = "1-2"
+/obj/structure/table/bench/steel,
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
},
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 4
- },
-/obj/machinery/alarm/alarms_hidden{
- dir = 4;
- pixel_x = -26
- },
-/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
-/area/aro3/hallway_port)
+/area/aro3/park)
"Mn" = (
/obj/machinery/sleeper{
dir = 4
@@ -30557,10 +30613,8 @@ Ua
/turf/simulated/floor/tiled/eris/dark/danger,
/area/aro3/flight_deck)
"MC" = (
-/obj/structure/sign/warning/docking_area,
-/obj/structure/window/plastitanium/full,
-/turf/simulated/floor/plating/eris/under,
-/area/aro3/flight_deck)
+/turf/space/internal_edge/topright,
+/area/aro3/park)
"MD" = (
/obj/structure/table/rack/shelf/steel,
/turf/simulated/floor/tiled/techmaint,
@@ -30662,7 +30716,7 @@ Ua
/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
/area/aro3/kitchen)
"NC" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/repair_bay)
"NF" = (
/obj/effect/floor_decal/industrial/hatch/yellow,
@@ -30678,7 +30732,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "1-8"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/power)
"NJ" = (
/obj/machinery/light{
@@ -30778,6 +30832,18 @@ Ua
"Ov" = (
/turf/simulated/floor/tiled/eris/dark/danger,
/area/aro3/flight_deck)
+"Ox" = (
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/aro3/hallway_starboard)
"Oy" = (
/obj/structure/window/basic{
dir = 4
@@ -30859,7 +30925,12 @@ Ua
/area/aro3/function)
"Pe" = (
/obj/structure/table/bench/steel,
-/turf/simulated/floor/outdoors/grass/heavy,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/grass/heavy{
+ outdoors = 0
+ },
/area/aro3/park)
"Pi" = (
/obj/machinery/alarm/alarms_hidden{
@@ -31105,11 +31176,11 @@ Ua
/turf/simulated/floor/tiled/eris/cafe,
/area/aro3/kitchen)
"Rz" = (
-/obj/structure/window/plastitanium/full,
+/obj/effect/low_wall_spawner/eris/rglass,
/turf/simulated/floor/plating/eris/under,
/area/aro3/surfluid)
"RJ" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/surfluid)
"RK" = (
/obj/structure/cable/cyan{
@@ -31129,6 +31200,9 @@ Ua
},
/turf/simulated/floor/reinforced/airless,
/area/space)
+"RR" = (
+/turf/space/internal_edge/bottomleft,
+/area/aro3/park)
"Sa" = (
/obj/effect/floor_decal/industrial/warning/dust,
/obj/structure/cable/cyan{
@@ -31233,6 +31307,9 @@ Ua
},
/turf/simulated/floor/tiled/eris/dark/gray_perforated,
/area/shuttle/aroboat3)
+"Tc" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/workshop)
"Tg" = (
/obj/machinery/alarm/alarms_hidden{
dir = 1;
@@ -31306,7 +31383,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/power)
"TK" = (
/obj/structure/cable/cyan{
@@ -31354,7 +31431,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/medical)
"Ua" = (
/turf/space,
@@ -31414,7 +31491,7 @@ Ua
/turf/simulated/floor/tiled/eris/steel/panels,
/area/aro3/hallway_starboard)
"Uy" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/suite_port_wc)
"Uz" = (
/turf/simulated/floor/tiled/eris/dark,
@@ -31459,6 +31536,9 @@ Ua
/obj/structure/fans/hardlight,
/turf/simulated/floor/reinforced,
/area/aro3/flight_deck)
+"Vk" = (
+/turf/space/internal_edge/bottomright,
+/area/aro3/park)
"Vl" = (
/obj/structure/table/glass,
/obj/item/weapon/storage/firstaid/adv,
@@ -31488,7 +31568,7 @@ Ua
/turf/simulated/floor/water/indoors/surfluid,
/area/aro3/surfluid)
"VD" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/suite_starboard_wc)
"VO" = (
/obj/structure/sink/kitchen{
@@ -31520,6 +31600,9 @@ Ua
},
/turf/simulated/floor/wood,
/area/aro3/suite_port)
+"VZ" = (
+/turf/simulated/wall/eris/r_wall,
+/area/aro3/kitchen)
"Wc" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -31543,6 +31626,10 @@ Ua
/obj/machinery/meter,
/turf/simulated/floor/plating/eris/under,
/area/aro3/atmos)
+"Wy" = (
+/obj/effect/low_wall_spawner/eris/rglass,
+/turf/simulated/floor/plating/eris/under,
+/area/aro3/medical)
"Wz" = (
/obj/structure/table/steel,
/turf/simulated/floor/tiled/eris/dark/gray_platform,
@@ -31551,7 +31638,7 @@ Ua
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/workshop)
"WB" = (
/obj/item/modular_computer/console/preset/civilian,
@@ -31584,7 +31671,7 @@ Ua
/turf/simulated/floor/tiled/eris/dark,
/area/aro3/surfluid)
"WN" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/hallway_bunkrooms)
"WP" = (
/obj/structure/closet/walllocker/emerglocker/north,
@@ -31598,7 +31685,7 @@ Ua
/turf/simulated/floor/tiled/eris/cafe,
/area/aro3/kitchen)
"WU" = (
-/obj/structure/window/plastitanium/full,
+/obj/effect/low_wall_spawner/eris/rglass,
/turf/simulated/floor/plating/eris/under,
/area/aro3/bar)
"WV" = (
@@ -31663,10 +31750,7 @@ Ua
/turf/simulated/floor/water/indoors/surfluid,
/area/aro3/medical)
"Xv" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/simulated/floor/water/deep/indoors,
+/turf/space/internal_edge/left,
/area/aro3/park)
"XE" = (
/obj/structure/lattice,
@@ -31708,6 +31792,18 @@ Ua
},
/turf/simulated/floor/tiled/eris/dark/gray_perforated,
/area/shuttle/aroboat3)
+"Yb" = (
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/aro3/hallway_port)
"Yf" = (
/obj/structure/cable/cyan{
icon_state = "1-2"
@@ -31851,7 +31947,7 @@ Ua
/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
/area/aro3/hallway_port)
"Zm" = (
-/turf/simulated/wall/rpshull,
+/turf/simulated/wall/eris/r_wall,
/area/aro3/cockpit)
"Zo" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -39717,10 +39813,10 @@ hD
jC
Fn
Fn
-eN
-eN
-eN
-eN
+ap
+ap
+ap
+ap
HJ
HJ
JU
@@ -39859,11 +39955,11 @@ Fn
Fn
Fn
eN
-eN
+ap
Yu
Pu
Wg
-eN
+ap
pV
hN
WN
@@ -39999,13 +40095,13 @@ Fn
Fn
Fn
Fn
-eN
-eN
-eN
+ap
+ap
+ap
Rm
-eN
-eN
-eN
+ap
+ap
+ap
zI
ef
WN
@@ -40147,7 +40243,7 @@ lf
lf
MY
bH
-eN
+ap
ye
ZP
fc
@@ -40283,7 +40379,7 @@ Uy
Uy
CR
Oy
-eN
+ap
xh
KX
II
@@ -40431,7 +40527,7 @@ ra
pj
af
iS
-eN
+ap
Fr
qI
WN
@@ -40567,13 +40663,13 @@ QE
yQ
dG
Dr
-eN
+ap
QV
Kl
Yz
gd
OR
-eN
+ap
MS
To
WN
@@ -40709,13 +40805,13 @@ Uy
Uy
Uy
Uy
-eN
-eN
-eN
-eN
+ap
+ap
+ap
+ap
bk
-eN
-eN
+ap
+ap
Fr
qI
WN
@@ -40727,8 +40823,8 @@ zo
zo
lO
lO
-lO
-lO
+Wy
+Wy
lO
lO
iN
@@ -40868,10 +40964,10 @@ Yf
Yf
Yf
Yf
+Io
+SE
Yf
-Ml
-Le
-lI
+Yb
Yf
Yf
wu
@@ -41117,11 +41213,11 @@ Fn
Fn
Fn
Fn
-Nu
+cB
qm
Aa
-Nu
-Nu
+cB
+cB
ns
ns
ns
@@ -41136,19 +41232,19 @@ ns
ns
ns
ns
-Fy
-Fy
-Fy
+VZ
+VZ
+VZ
qI
Fr
+VZ
Fy
Fy
-Fy
-RJ
RJ
RJ
Rz
-RJ
+Rz
+Rz
RJ
RJ
iN
@@ -41162,18 +41258,18 @@ NC
NC
oz
qI
-Ur
-Ur
-Ur
-Ur
-Ur
-Ur
-Ur
+Iq
+Iq
+Iq
+Iq
+Iq
+Iq
+Iq
Jj
Jj
Jj
-Ur
-Ur
+Iq
+Iq
Ur
Ua
Ua
@@ -41254,16 +41350,16 @@ zD
Ae
Fn
lu
-lu
-lu
-lu
-lu
-lu
+KB
+Xv
+Xv
+Xv
+RR
lu
XF
XF
fZ
-Nu
+cB
Uu
Dn
Dn
@@ -41278,12 +41374,12 @@ Dn
Dn
Dn
CQ
-Fy
+VZ
AC
-Fy
+VZ
dn
Aj
-Fy
+VZ
WR
yD
RJ
@@ -41304,7 +41400,7 @@ uI
NC
Ty
To
-Ur
+Iq
Hc
Ov
HE
@@ -41396,16 +41492,16 @@ KF
Zm
Zm
lu
-lu
Xj
-Xv
+Xj
+Xj
Xj
Xj
lu
XF
XF
kc
-Nu
+cB
EC
EF
pr
@@ -41420,7 +41516,7 @@ HH
HH
jh
cm
-Fy
+VZ
AD
iL
mQ
@@ -41446,7 +41542,7 @@ hl
NC
Rj
qI
-Ur
+Iq
wq
Ov
Fc
@@ -41547,7 +41643,7 @@ lu
DM
XF
XF
-Nu
+cB
EC
zu
uJ
@@ -41562,7 +41658,7 @@ uJ
uJ
iJ
cm
-Fy
+VZ
ym
AD
AD
@@ -41588,7 +41684,7 @@ CW
NC
mF
qI
-Ur
+Iq
aA
Ov
Fc
@@ -41680,7 +41776,7 @@ NQ
kM
Zm
lu
-Pe
+Ml
el
el
mX
@@ -41689,8 +41785,8 @@ lu
lu
PV
Tv
-Nu
-Nu
+cB
+cB
Pb
rN
CA
@@ -41704,7 +41800,7 @@ kb
uJ
rx
ns
-Fy
+VZ
VO
AD
AD
@@ -41730,7 +41826,7 @@ Hn
NC
oz
qI
-MC
+Jj
Ov
Ov
HE
@@ -41814,7 +41910,7 @@ Hv
Hv
Hv
Hv
-cB
+Hv
iy
PP
tL
@@ -41956,7 +42052,7 @@ Hv
Hv
Hv
Hv
-cB
+Hv
iy
Lt
dE
@@ -42106,17 +42202,17 @@ NQ
Zo
Zm
lu
-Pe
+Ml
el
el
-mX
+rR
jr
lu
lu
VQ
Tg
-Nu
-Nu
+cB
+cB
Pb
pr
QZ
@@ -42130,7 +42226,7 @@ Jl
uJ
Us
ns
-Fy
+VZ
yU
AD
AD
@@ -42156,7 +42252,7 @@ Gt
NC
OV
Mr
-MC
+Jj
am
Ov
Ov
@@ -42257,7 +42353,7 @@ lu
vP
XF
XF
-Nu
+cB
EC
zu
uJ
@@ -42272,7 +42368,7 @@ uJ
uJ
iJ
cm
-Fy
+VZ
vN
AD
AD
@@ -42298,7 +42394,7 @@ Yt
NC
Md
Hz
-Ur
+Iq
UR
Ov
Qe
@@ -42390,16 +42486,16 @@ KF
Zm
Zm
lu
-lu
Xj
-KB
+Xj
+Xj
Xj
Xj
lu
XF
XF
kc
-Nu
+cB
EC
EF
rN
@@ -42414,7 +42510,7 @@ PJ
PJ
Ls
cm
-Fy
+VZ
AD
AD
AD
@@ -42440,7 +42536,7 @@ hl
NC
kj
Mr
-Ur
+Iq
gP
Ov
Qe
@@ -42532,16 +42628,16 @@ hH
at
Fn
lu
-lu
-lu
-lu
-lu
-lu
+MC
+jM
+jM
+jM
+Vk
lu
XF
XF
SD
-Nu
+cB
hk
EU
EU
@@ -42556,12 +42652,12 @@ EU
EU
EU
IF
-Fy
+VZ
TN
-Fy
+VZ
sw
Aj
-Fy
+VZ
ec
AQ
RJ
@@ -42582,7 +42678,7 @@ uI
NC
KA
Uv
-Ur
+Iq
jU
Ov
kg
@@ -42679,11 +42775,11 @@ Fn
Fn
Fn
Fn
-Nu
+cB
qm
Aa
-Nu
-Nu
+cB
+cB
ns
ns
ns
@@ -42698,19 +42794,19 @@ ns
ns
ns
ns
-Fy
-Fy
-Fy
+VZ
+VZ
+VZ
kl
CH
+VZ
Fy
Fy
-Fy
-RJ
RJ
RJ
Rz
-RJ
+Rz
+Rz
RJ
RJ
Mr
@@ -42724,18 +42820,18 @@ NC
NC
OV
Mr
-Ur
-Ur
-Ur
-Ur
-Ur
-Ur
-Ur
+Iq
+Iq
+Iq
+Iq
+Iq
+Iq
+Iq
Jj
Jj
Jj
-Ur
-Ur
+Iq
+Iq
Ur
Ua
Ua
@@ -43000,8 +43096,8 @@ Hr
Sj
Hr
LT
-sD
-KU
+Hr
+Ox
Hr
Ze
ne
@@ -43123,33 +43219,33 @@ VD
VD
VD
VD
-pS
-pS
-pS
-pS
+hM
+hM
+hM
+hM
jy
-pS
-pS
+hM
+hM
CH
Mr
-EV
-EV
-EV
-EV
+Lb
+Lb
+Lb
WU
WU
-EV
-ly
-ly
-ly
-ly
-ly
-ly
+WU
+Lb
+Tc
+Tc
+Tc
+Tc
+Tc
+Tc
CH
Mr
-ly
-ly
-ly
+Tc
+Tc
+Tc
fB
JK
Ie
@@ -43265,31 +43361,31 @@ Nm
hu
Iu
eK
-pS
+hM
wy
dF
lv
ig
sr
-pS
+hM
Gg
Uv
-EV
+Lb
JM
aZ
Fx
DH
Fx
WJ
-ly
+Tc
aY
ki
lC
aY
-ly
+Tc
lq
mg
-ly
+Tc
aY
aY
fB
@@ -43413,17 +43509,17 @@ fb
Hq
nL
od
-pS
+hM
CH
Mr
-EV
-EV
+Lb
+Lb
nz
Fx
xp
Fx
al
-ly
+Tc
Wz
nm
tl
@@ -43549,7 +43645,7 @@ VD
VD
AX
Gp
-pS
+hM
WB
Eu
US
@@ -43564,8 +43660,8 @@ gE
YY
Kz
hT
-EV
-ly
+Lb
+Tc
aa
nm
tl
@@ -43697,7 +43793,7 @@ xP
xP
kk
ZL
-pS
+hM
PO
aR
DY
@@ -43707,7 +43803,7 @@ go
Qv
YY
WJ
-ly
+Tc
nm
nm
tl
@@ -43833,23 +43929,23 @@ Fn
Fn
Fn
Fn
-pS
-pS
-pS
+hM
+hM
+hM
tY
-pS
-pS
-pS
+hM
+hM
+hM
QT
sW
-EV
-EV
+Lb
+Lb
zW
YF
Fx
YY
WJ
-ly
+Tc
PN
nm
tl
@@ -43977,21 +44073,21 @@ Fn
Fn
Fn
pS
-pS
+hM
xw
Fl
YN
-pS
+hM
Yj
LS
-EV
+Lb
mG
iI
DH
Fx
YY
WJ
-ly
+Tc
MN
nm
tl
@@ -44119,21 +44215,21 @@ hD
zS
Fn
Fn
-eN
-pS
-pS
-pS
-fL
-fL
+ap
+hM
+hM
+hM
+IR
+IR
hC
-EV
+Lb
zY
aO
DH
Fx
YY
WJ
-ly
+Tc
dM
nm
tl
@@ -44265,17 +44361,17 @@ Fn
Fn
Fn
Fn
-fL
+IR
Zw
ws
-EV
+Lb
eR
em
DH
Fx
YY
WJ
-ly
+Tc
Wz
FE
tl
@@ -44284,8 +44380,8 @@ xI
PL
Aq
Rp
-ly
-ly
+Tc
+Tc
Fn
Fn
Fn
@@ -44407,26 +44503,26 @@ EI
Fn
Fn
Fn
-fL
+IR
lr
dH
-EV
+Lb
YY
zM
YY
YY
hT
-EV
-ly
-ly
-ly
-ly
+Lb
+Tc
+Tc
+Tc
+Tc
Nj
-ly
-ly
-ly
-ly
-ly
+Tc
+Tc
+Tc
+Tc
+Tc
Fn
Fn
Ua
@@ -44549,24 +44645,24 @@ Ua
HG
Fn
Fn
-fL
-fL
+IR
+IR
uY
-EV
+Lb
YY
fz
hA
gu
YY
qC
-ly
+Tc
hn
KP
Uq
Uq
Uq
Ln
-ly
+Tc
ly
Fn
Fn
@@ -44692,23 +44788,23 @@ Ua
HG
Fn
Fn
-fL
-fL
-EV
+IR
+IR
+Lb
YY
zM
YY
YY
YY
WJ
-ly
+Tc
Uq
Uq
ri
qR
KE
-ly
-ly
+Tc
+Tc
Fn
Fn
dk
@@ -44836,20 +44932,20 @@ HG
Fn
Fn
fL
-EV
-EV
+Lb
+Lb
dP
-EV
-EV
-EV
-EV
-ly
+Lb
+Lb
+Lb
+Lb
+Tc
Uq
zk
-ly
-ly
-ly
-ly
+Tc
+Tc
+Tc
+Tc
Fn
Fn
dk
@@ -44979,16 +45075,16 @@ HG
Fn
Fn
EV
-EV
+Lb
oh
Rt
sG
sG
MD
-ly
+Tc
ZU
-ly
-ly
+Tc
+Tc
Fn
Fn
Fn
@@ -45121,15 +45217,15 @@ Ua
HG
Fn
Fn
-EV
-EV
+Lb
+Lb
vu
nX
Rt
pT
-EV
-ly
-ly
+Lb
+Tc
+Tc
Fn
Fn
dk
@@ -45264,12 +45360,12 @@ Ua
HG
Fn
Fn
-EV
-EV
+Lb
+Lb
MD
dK
MD
-EV
+Lb
Fn
Fn
Fn
@@ -45407,11 +45503,11 @@ Ua
HG
Fn
Fn
-EV
-EV
+Lb
+Lb
vH
-EV
-EV
+Lb
+Lb
Fn
Fn
dk