diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm index 0de8d332b7..552e8672f8 100644 --- a/code/game/objects/effects/alien/aliens.dm +++ b/code/game/objects/effects/alien/aliens.dm @@ -152,6 +152,12 @@ * Weeds */ #define NODERANGE 3 +#define WEED_NORTH_EDGING "north" +#define WEED_SOUTH_EDGING "south" +#define WEED_EAST_EDGING "east" +#define WEED_WEST_EDGING "west" +#define WEED_NODE_GLOW "glow" +#define WEED_NODE_BASE "nodebase" /obj/effect/alien/weeds name = "weeds" @@ -164,6 +170,18 @@ layer = ABOVE_TURF_LAYER var/health = 15 var/obj/effect/alien/weeds/node/linked_node = null + var/static/list/weedImageCache + +/obj/effect/alien/weeds/Destroy() + var/turf/T = get_turf(src) + // To not mess up the overlay updates. + loc = null + + for (var/obj/effect/alien/weeds/W in range(1,T)) + W.updateWeedOverlays() + + linked_node = null + ..() /obj/effect/alien/weeds/node icon_state = "weednode" @@ -173,9 +191,22 @@ light_range = NODERANGE var/node_range = NODERANGE + var/set_color = null + /obj/effect/alien/weeds/node/New() ..(src.loc, src) +/obj/effect/alien/weeds/node/Initialize() + ..() + START_PROCESSING(SSobj, src) + + spawn(1 SECOND) + if(color) + set_color = color + +/obj/effect/alien/weeds/node/Destroy() + STOP_PROCESSING(SSobj, src) + ..() /obj/effect/alien/weeds/New(pos, node) ..() @@ -184,12 +215,45 @@ return linked_node = node if(icon_state == "weeds")icon_state = pick("weeds", "weeds1", "weeds2") - spawn(rand(150, 200)) - if(src) - Life() + + fullUpdateWeedOverlays() + +/obj/effect/alien/weeds/proc/updateWeedOverlays() + + overlays.Cut() + + if(!weedImageCache || !weedImageCache.len) + weedImageCache = list() +// weedImageCache.len = 4 + weedImageCache[WEED_NORTH_EDGING] = image('icons/mob/alien.dmi', "weeds_side_n", layer=2.11, pixel_y = -32) + weedImageCache[WEED_SOUTH_EDGING] = image('icons/mob/alien.dmi', "weeds_side_s", layer=2.11, pixel_y = 32) + weedImageCache[WEED_EAST_EDGING] = image('icons/mob/alien.dmi', "weeds_side_e", layer=2.11, pixel_x = -32) + weedImageCache[WEED_WEST_EDGING] = image('icons/mob/alien.dmi', "weeds_side_w", layer=2.11, pixel_x = 32) + + var/turf/N = get_step(src, NORTH) + var/turf/S = get_step(src, SOUTH) + var/turf/E = get_step(src, EAST) + var/turf/W = get_step(src, WEST) + if(!locate(/obj/effect/alien) in N.contents) + if(istype(N, /turf/simulated/floor)) + overlays += weedImageCache[WEED_SOUTH_EDGING] + if(!locate(/obj/effect/alien) in S.contents) + if(istype(S, /turf/simulated/floor)) + overlays += weedImageCache[WEED_NORTH_EDGING] + if(!locate(/obj/effect/alien) in E.contents) + if(istype(E, /turf/simulated/floor)) + overlays += weedImageCache[WEED_WEST_EDGING] + if(!locate(/obj/effect/alien) in W.contents) + if(istype(W, /turf/simulated/floor)) + overlays += weedImageCache[WEED_EAST_EDGING] + +/obj/effect/alien/weeds/proc/fullUpdateWeedOverlays() + for (var/obj/effect/alien/weeds/W in range(1,src)) + W.updateWeedOverlays() + return -/obj/effect/alien/weeds/proc/Life() +/obj/effect/alien/weeds/process() set background = 1 var/turf/U = get_turf(src) /* @@ -211,6 +275,9 @@ Alien plants should do something if theres a lot of poison if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) ) return + if(linked_node != src) + color = linked_node.set_color + direction_loop: for(var/dirn in cardinal) var/turf/T = get_step(src, dirn) @@ -222,10 +289,33 @@ Alien plants should do something if theres a lot of poison // continue for(var/obj/O in T) - if(O.density) + if(!O.CanZASPass(U)) continue direction_loop - new /obj/effect/alien/weeds(T, linked_node) + var/obj/effect/E = new /obj/effect/alien/weeds(T, linked_node) + + E.color = color + + if(istype(src, /obj/effect/alien/weeds/node)) + var/obj/effect/alien/weeds/node/N = src + var/list/nearby_weeds = list() + for(var/obj/effect/alien/weeds/W in range(N.node_range,src)) + nearby_weeds |= W + + for(var/obj/effect/alien/weeds/W in nearby_weeds) + if(!W) + continue + + if(!W.linked_node) + linked_node = src + + W.color = W.linked_node.set_color + + if(W == src) + continue + + if(prob(max(10, 40 - (5 * nearby_weeds.len)))) + W.process() /obj/effect/alien/weeds/ex_act(severity) @@ -282,7 +372,12 @@ Alien plants should do something if theres a lot of poison healthcheck() #undef NODERANGE - +#undef WEED_NORTH_EDGING +#undef WEED_SOUTH_EDGING +#undef WEED_EAST_EDGING +#undef WEED_WEST_EDGING +#undef WEED_NODE_GLOW +#undef WEED_NODE_BASE /* * Acid diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 2648723385..aab0ecf7f0 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -62,7 +62,7 @@ /obj/structure/girder/update_icon() if(anchored) - icon_state = "girder" + icon_state = initial(icon_state) else icon_state = "displaced" @@ -320,6 +320,7 @@ name = "column" icon= 'icons/obj/cult.dmi' icon_state= "cultgirder" + max_health = 250 health = 250 cover = 70 girder_material = "cult" @@ -354,6 +355,13 @@ new /obj/effect/decal/remains/human(get_turf(src)) dismantle() +/obj/structure/girder/resin + name = "soft girder" + icon_state = "girder_resin" + max_health = 225 + health = 225 + cover = 60 + girder_material = "resin" /obj/structure/girder/rcd_values(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode) var/turf/simulated/T = get_turf(src) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index 8599def4a5..676ad392f0 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -93,8 +93,9 @@ if(..()) return 1 if(!can_open) - to_chat(user, "You push the wall, but nothing happens.") - playsound(src, 'sound/weapons/Genhit.ogg', 25, 1) + if(!material.wall_touch_special(src, user)) + to_chat(user, "You push the wall, but nothing happens.") + playsound(src, 'sound/weapons/Genhit.ogg', 25, 1) else toggle_open(user) return 0 diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm index 37bf0d7541..bff82d6e0e 100644 --- a/code/game/turfs/simulated/wall_types.dm +++ b/code/game/turfs/simulated/wall_types.dm @@ -59,6 +59,9 @@ /turf/simulated/wall/snowbrick/New(var/newloc) ..(newloc,"packed snow") +/turf/simulated/wall/resin/New(var/newloc) + ..(newloc,"resin",null,"resin") + // Kind of wondering if this is going to bite me in the butt. /turf/simulated/wall/skipjack/New(var/newloc) ..(newloc,"alienalloy") diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 48cbf116c4..d141f1c7af 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -225,3 +225,14 @@ recipes += new/datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE) recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE) recipes += new/datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE) + +/material/resin/generate_recipes() + recipes = list() + recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door/resin, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] barricade", /obj/effect/alien/resin/wall, 5, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] nest", /obj/structure/bed/nest, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] wall girders", /obj/structure/girder/resin, 2, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] membrane", /obj/effect/alien/resin/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] node", /obj/effect/alien/weeds/node, 1, time = 4 SECONDS) diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index 31a3447bf2..f6708481b5 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -371,6 +371,15 @@ pass_color = TRUE strict_color_stacking = TRUE +/obj/item/stack/material/resin + name = "resin" + icon_state = "sheet-resin" + default_type = "resin" + no_variants = TRUE + apply_colour = TRUE + pass_color = TRUE + strict_color_stacking = TRUE + /obj/item/stack/material/cardboard name = "cardboard" icon_state = "sheet-card" diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 307b52bb90..724f4771f6 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -16,6 +16,7 @@ stone metal solid + resin ONLY WALLS cult hull @@ -240,6 +241,10 @@ var/list/name_to_material /material/proc/combustion_effect(var/turf/T, var/temperature) return +// Used by walls to do on-touch things, after checking for crumbling and open-ability. +/material/proc/wall_touch_special(var/turf/simulated/wall/W, var/mob/living/L) + return + // Datum definitions follow. /material/uranium name = "uranium" @@ -824,12 +829,18 @@ var/list/name_to_material /material/resin name = "resin" icon_colour = "#35343a" + icon_base = "resin" dooropen_noise = 'sound/effects/attackblob.ogg' door_icon_base = "resin" + icon_reinf = "reinf_mesh" melting_point = T0C+300 sheet_singular_name = "blob" sheet_plural_name = "blobs" conductive = 0 + explosion_resistance = 60 + radiation_resistance = 10 + stack_origin_tech = list(TECH_MATERIAL = 8, TECH_PHORON = 4, TECH_BLUESPACE = 4, TECH_BIO = 7) + stack_type = /obj/item/stack/material/resin /material/resin/can_open_material_door(var/mob/living/user) var/mob/living/carbon/M = user @@ -837,6 +848,17 @@ var/list/name_to_material return 1 return 0 +/material/resin/wall_touch_special(var/turf/simulated/wall/W, var/mob/living/L) + var/mob/living/carbon/M = L + if(istype(M) && locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs) + to_chat(M, "\The [W] shudders under your touch, starting to become porous.") + playsound(W, 'sound/effects/attackblob.ogg', 50, 1) + if(do_after(L, 5 SECONDS)) + spawn(2) + playsound(W, 'sound/effects/attackblob.ogg', 100, 1) + W.dismantle_wall() + return 1 + return 0 /material/wood name = MAT_WOOD diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0cf20396d8..51cf0fce5f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1283,6 +1283,9 @@ else if (affecting.robotic >= ORGAN_LIFELIKE) . = 0 fail_msg = "Your needle refuses to penetrate more than a short distance..." + else if (affecting.thick_skin && prob(70 - round(affecting.brute_dam + affecting.burn_dam / 2))) // Allows transplanted limbs with thick skin to maintain their resistance. + . = 0 + fail_msg = "Your needle fails to penetrate \the [affecting]'s thick hide..." else switch(target_zone) if(BP_HEAD) diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm index cc7cd7ef85..9567949247 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm @@ -121,7 +121,9 @@ if(check_alien_ability(50,1,O_RESIN)) visible_message("[src] has planted some alien weeds!") - new /obj/effect/alien/weeds/node(loc) + var/obj/O = new /obj/effect/alien/weeds/node(loc) + if(O) + O.color = "#321D37" return /mob/living/carbon/human/proc/Spit(var/atom/A) @@ -231,7 +233,7 @@ set desc = "Secrete tough malleable resin." set category = "Abilities" - var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin door","resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist + var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin door","resin wall","resin membrane","resin nest","resin blob") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist if(!choice) return @@ -239,15 +241,24 @@ return visible_message("[src] vomits up a thick purple substance and begins to shape it!", "You shape a [choice].") + + var/obj/O + switch(choice) if("resin door") - new /obj/structure/simple_door/resin(loc) + O = new /obj/structure/simple_door/resin(loc) if("resin wall") - new /obj/effect/alien/resin/wall(loc) + O = new /obj/effect/alien/resin/wall(loc) if("resin membrane") - new /obj/effect/alien/resin/membrane(loc) + O = new /obj/effect/alien/resin/membrane(loc) if("resin nest") - new /obj/structure/bed/nest(loc) + O = new /obj/structure/bed/nest(loc) + if("resin blob") + O = new /obj/item/stack/material/resin(loc) + + if(O) + O.color = "#321D37" + return /mob/living/carbon/human/proc/leap() diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm index e8b9a070ea..9e2a949402 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm @@ -66,17 +66,17 @@ var/weeds_plasma_rate = 5 // Plasma regen on weeds. has_limbs = list( - BP_TORSO = list("path" = /obj/item/organ/external/chest), - BP_GROIN = list("path" = /obj/item/organ/external/groin), - BP_HEAD = list("path" = /obj/item/organ/external/head/no_eyes), - BP_L_ARM = list("path" = /obj/item/organ/external/arm), - BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), - BP_L_LEG = list("path" = /obj/item/organ/external/leg), - BP_R_LEG = list("path" = /obj/item/organ/external/leg/right), - BP_L_HAND = list("path" = /obj/item/organ/external/hand), - BP_R_HAND = list("path" = /obj/item/organ/external/hand/right), - BP_L_FOOT = list("path" = /obj/item/organ/external/foot), - BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right) + BP_TORSO = list("path" = /obj/item/organ/external/chest/unseverable/xeno), + BP_GROIN = list("path" = /obj/item/organ/external/groin/unseverable/xeno), + BP_HEAD = list("path" = /obj/item/organ/external/head/unseverable/xeno), + BP_L_ARM = list("path" = /obj/item/organ/external/arm/unseverable/xeno), + BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/unseverable/xeno), + BP_L_LEG = list("path" = /obj/item/organ/external/leg/unseverable/xeno), + BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/unseverable/xeno), + BP_L_HAND = list("path" = /obj/item/organ/external/hand/unseverable/xeno), + BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/unseverable/xeno), + BP_L_FOOT = list("path" = /obj/item/organ/external/foot/unseverable/xeno), + BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unseverable/xeno) ) /datum/species/xenos/get_bodytype() @@ -136,7 +136,7 @@ H.adjustOxyLoss(-heal_rate) H.adjustToxLoss(-heal_rate) if (prob(5)) - H << "You feel a soothing sensation come over you..." + H << "You feel a soothing sensation come over you..." return 1 //next internal organs @@ -144,7 +144,7 @@ if(I.damage > 0) I.damage = max(I.damage - heal_rate, 0) if (prob(5)) - H << "You feel a soothing sensation within your [I.parent_organ]..." + H << "You feel a soothing sensation within your [I.parent_organ]..." return 1 //next mend broken bones, approx 10 ticks each @@ -152,7 +152,7 @@ if (E.status & ORGAN_BROKEN) if (prob(mend_prob)) if (E.mend_fracture()) - H << "You feel something mend itself inside your [E.name]." + H << "You feel something mend itself inside your [E.name]." return 1 return 0 diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 215ef65ced..b9aecbe250 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -14,6 +14,7 @@ var/list/organ_cache = list() var/vital // Lose a vital limb, die immediately. var/damage = 0 // Current damage to the organ var/robotic = 0 + var/stapled_nerves = FALSE // Reference data. var/mob/living/carbon/human/owner // Current mob owning the organ. @@ -431,6 +432,8 @@ var/list/organ_cache = list() return 0 if(robotic && robotic < ORGAN_LIFELIKE) //Super fancy humanlike robotics probably have sensors, or something? return 0 + if(stapled_nerves) + return 0 return 1 /obj/item/organ/proc/handle_organ_mod_special(var/removed = FALSE) // Called when created, transplanted, and removed. diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index c8b02f02b8..433dfae84e 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -25,6 +25,7 @@ var/burn_dam = 0 // Actual current burn damage. var/last_dam = -1 // used in healing/processing calculations. var/spread_dam = 0 + var/thick_skin = 0 // If a needle has a chance to fail to penetrate. // Appearance vars. var/nonsolid // Snowflake warning, reee. Used for slime limbs. diff --git a/code/modules/organs/subtypes/indestructible.dm b/code/modules/organs/subtypes/indestructible.dm index 2f2e13400f..169b7f2c38 100644 --- a/code/modules/organs/subtypes/indestructible.dm +++ b/code/modules/organs/subtypes/indestructible.dm @@ -63,3 +63,9 @@ cannot_amputate = 1 cannot_break = 1 dislocated = -1 + +/obj/item/organ/external/head/no_eyes/indestructible + cannot_gib = 1 + cannot_amputate = 1 + cannot_break = 1 + dislocated = -1 diff --git a/code/modules/organs/subtypes/xenos.dm b/code/modules/organs/subtypes/xenos.dm index dd860ab235..1c4cfa6907 100644 --- a/code/modules/organs/subtypes/xenos.dm +++ b/code/modules/organs/subtypes/xenos.dm @@ -137,3 +137,79 @@ if(ishuman(owner)) H = owner color = H.species.blood_color + + +// XENOMORPH EXTERNAL ORGANS + +/obj/item/organ/external/chest/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + thick_skin = TRUE + +/obj/item/organ/external/groin/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/arm/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/arm/right/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/leg/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/leg/right/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/foot/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/foot/right/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/hand/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/hand/right/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + stapled_nerves = TRUE + encased = TRUE + thick_skin = TRUE + +/obj/item/organ/external/head/unseverable/xeno + cannot_gib = 1 + cannot_amputate = 1 + thick_skin = TRUE + eye_icon = "blank_eyes" diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 092070e0a4..c68cc402cf 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -183,8 +183,8 @@ if(H.wear_suit) if(istype(H.wear_suit, /obj/item/clothing/suit/space)) injtime = injtime * 2 - else if(!H.can_inject(user, 1)) - return + if(!H.can_inject(user, 1)) + return else if(isliving(target)) diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 63f2d47b24..f00110275d 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index 2d51ed3634..5fd362c7cb 100644 Binary files a/icons/obj/stacks.dmi and b/icons/obj/stacks.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 908c2981dd..89a5e9071d 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/turf/wall_masks.dmi b/icons/turf/wall_masks.dmi index bda615cd5c..916d230ffd 100644 Binary files a/icons/turf/wall_masks.dmi and b/icons/turf/wall_masks.dmi differ