diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index df450b9803c..c140f4d827f 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -14,15 +14,11 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "f" = ( /obj/structure/cursed_slot_machine, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "g" = ( /obj/structure/table/wood/poker, @@ -30,28 +26,20 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "h" = ( /obj/structure/table/wood/poker, /obj/item/coin/diamond, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "i" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "j" = ( /obj/structure/table/wood/poker, /obj/item/coin/adamantine, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "k" = ( /obj/machinery/computer/arcade/battle{ diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index e1591c74277..67cd6eb95d8 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -1828,9 +1828,7 @@ /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel/dock) "gg" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/space/has_grav/hotel/dock) "gh" = ( /obj/item/kirbyplants{ diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 6043b0ea763..e8bc0fa0bce 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -560,9 +560,7 @@ /turf/open/floor/plasteel, /area/awaymission/academy/headmaster) "cu" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/awaymission/academy/headmaster) "cv" = ( /obj/machinery/door/window{ @@ -2669,9 +2667,7 @@ }, /area/awaymission/academy/headmaster) "kx" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/awaymission/academy/academygate) "ky" = ( /obj/machinery/door/poddoor/shutters{ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 090eaae844b..56adeb3baa1 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -22767,9 +22767,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "baA" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/chapel/main) "baB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 5dbe6e08a02..b6e12653db1 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -19878,27 +19878,21 @@ /obj/item/radio/intercom{ pixel_y = 26 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bap" = ( /obj/machinery/computer/slot_machine, /obj/machinery/airalarm{ pixel_y = 24 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "baq" = ( /obj/effect/spawner/randomarcade, /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bar" = ( /obj/structure/extinguisher_cabinet{ @@ -20284,17 +20278,13 @@ /area/crew_quarters/bar) "bbo" = ( /obj/structure/table/wood/fancy, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbp" = ( /obj/structure/chair/wood{ dir = 8 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbq" = ( /obj/effect/turf_decal/tile/neutral{ @@ -20314,17 +20304,13 @@ /obj/structure/chair/wood{ dir = 4 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbs" = ( /obj/item/cane, /obj/item/clothing/head/that, /obj/structure/table/wood/fancy, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbt" = ( /obj/structure/disposalpipe/segment, @@ -20342,22 +20328,16 @@ "bbv" = ( /obj/structure/chair/stool, /obj/item/trash/can, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbw" = ( /obj/effect/landmark/start/assistant, /obj/structure/chair/stool, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbx" = ( /obj/structure/chair/stool, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bby" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -20621,17 +20601,13 @@ pixel_x = -3; pixel_y = 5 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bcq" = ( /obj/item/clothing/glasses/monocle, /obj/item/instrument/recorder, /obj/structure/table/wood/fancy, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bcr" = ( /obj/structure/disposalpipe/segment, diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 5e903e50669..aceea54b704 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -1,14 +1,30 @@ /* smoothing_flags */ -#define SMOOTH_CORNERS (1<<0) //Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime. -#define SMOOTH_DIAGONAL (1<<2) //if atom should smooth diagonally, this should be present in 'smoothing_flags' var -#define SMOOTH_BORDER (1<<3) //atom will smooth with the borders of the map -#define SMOOTH_QUEUED (1<<4) //atom is currently queued to smooth. -#define SMOOTH_OBJ (1<<5) //smooths with objects, and will thus need to scan turfs for contents. +/// Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime. +#define SMOOTH_CORNERS (1<<0) +/// Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking. +#define SMOOTH_BITMASK (1<<1) +/// Atom has diagonal corners, with underlays under them. +#define SMOOTH_DIAGONAL_CORNERS (1<<2) +/// Atom will smooth with the borders of the map. +#define SMOOTH_BORDER (1<<3) +/// Atom is currently queued to smooth. +#define SMOOTH_QUEUED (1<<4) +/// Smooths with objects, and will thus need to scan turfs for contents. +#define SMOOTH_OBJ (1<<5) + +DEFINE_BITFIELD(smoothing_flags, list( + "SMOOTH_CORNERS" = SMOOTH_CORNERS, + "SMOOTH_BITMASK" = SMOOTH_BITMASK, + "SMOOTH_DIAGONAL_CORNERS" = SMOOTH_DIAGONAL_CORNERS, + "SMOOTH_BORDER" = SMOOTH_BORDER, + "SMOOTH_QUEUED" = SMOOTH_QUEUED, + "SMOOTH_OBJ" = SMOOTH_OBJ, +)) /*smoothing macros*/ -#define QUEUE_SMOOTH(thing_to_queue) if(thing_to_queue.smoothing_flags) {SSicon_smooth.add_to_queue(thing_to_queue)} +#define QUEUE_SMOOTH(thing_to_queue) if(thing_to_queue.smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) {SSicon_smooth.add_to_queue(thing_to_queue)} #define QUEUE_SMOOTH_NEIGHBORS(thing_to_queue) for(var/neighbor in orange(1, thing_to_queue)) {var/atom/atom_neighbor = neighbor; QUEUE_SMOOTH(atom_neighbor)} @@ -74,10 +90,14 @@ #define SMOOTH_GROUP_TITANIUM_WALLS S_OBJ(11) ///turf/closed/wall/mineral/titanium, /obj/structure/falsewall/titanium #define SMOOTH_GROUP_PLASTITANIUM_WALLS S_OBJ(13) ///turf/closed/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium #define SMOOTH_GROUP_SURVIVAL_TIANIUM_POD S_OBJ(14) ///turf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod +#define SMOOTH_GROUP_HIERO_WALL S_OBJ(15) ///obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall #define SMOOTH_GROUP_PAPERFRAME S_OBJ(20) ///obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe -#define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(21) ///obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile +#define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(21) ///turf/closed/indestructible/fakeglass, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile +#define SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE S_OBJ(22) ///obj/structure/window/bronze/fulltile +#define SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM S_OBJ(23) ///turf/closed/indestructible/opsglass, /obj/structure/window/plasma/reinforced/plastitanium +#define SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE S_OBJ(24) ///obj/structure/window/shuttle #define SMOOTH_GROUP_LATTICE S_OBJ(30) ///obj/structure/lattice @@ -87,7 +107,10 @@ #define SMOOTH_GROUP_WOOD_TABLES S_OBJ(51) ///obj/structure/table/wood #define SMOOTH_GROUP_FANCY_WOOD_TABLES S_OBJ(52) ///obj/structure/table/wood/fancy #define SMOOTH_GROUP_BRONZE_TABLES S_OBJ(53) ///obj/structure/table/bronze +#define SMOOTH_GROUP_ABDUCTOR_TABLES S_OBJ(54) ///obj/structure/table/abductor +#define SMOOTH_GROUP_GLASS_TABLES S_OBJ(55) ///obj/structure/table/glass +#define SMOOTH_GROUP_ALIEN_NEST S_OBJ(59) ///obj/structure/bed/nest #define SMOOTH_GROUP_ALIEN_RESIN S_OBJ(60) ///obj/structure/alien/resin #define SMOOTH_GROUP_ALIEN_WALLS S_OBJ(61) ///obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane #define SMOOTH_GROUP_ALIEN_WEEDS S_OBJ(62) ///obj/structure/alien/weeds diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 776f069a3e1..b4b9e8e8f42 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -11,7 +11,7 @@ DIAGONAL SMOOTHING INSTRUCTIONS To make your atom smooth diagonally you need all the proper icon states (see 'smooth_wall.dmi' for a template) and - to add the 'SMOOTH_DIAGONAL' flag to the atom's smoothing_flags var (in addition to either SMOOTH_TRUE or SMOOTH_MORE). + to add the 'SMOOTH_DIAGONAL_CORNERS' flag to the atom's smoothing_flags var (in addition to either SMOOTH_TRUE or SMOOTH_MORE). For turfs, what appears under the diagonal corners depends on the turf that was in the same position previously: if you make a wall on a plating floor, you will see plating under the diagonal wall corner, if it was space, you will see space. @@ -25,14 +25,26 @@ */ //Redefinitions of the diagonal directions so they can be stored in one var without conflicts -#define N_NORTH NORTH //(1<<0) -#define N_SOUTH SOUTH //(1<<1) -#define N_EAST EAST //(1<<2) -#define N_WEST WEST //(1<<3) -#define N_NORTHEAST (1<<4) -#define N_NORTHWEST (1<<5) -#define N_SOUTHEAST (1<<6) -#define N_SOUTHWEST (1<<7) +#define NORTH_JUNCTION NORTH //(1<<0) +#define SOUTH_JUNCTION SOUTH //(1<<1) +#define EAST_JUNCTION EAST //(1<<2) +#define WEST_JUNCTION WEST //(1<<3) +#define NORTHEAST_JUNCTION (1<<4) +#define SOUTHEAST_JUNCTION (1<<5) +#define SOUTHWEST_JUNCTION (1<<6) +#define NORTHWEST_JUNCTION (1<<7) + +DEFINE_BITFIELD(smoothing_junction, list( + "NORTH_JUNCTION" = NORTH_JUNCTION, + "SOUTH_JUNCTION" = SOUTH_JUNCTION, + "EAST_JUNCTION" = EAST_JUNCTION, + "WEST_JUNCTION" = WEST_JUNCTION, + "NORTHEAST_JUNCTION" = NORTHEAST_JUNCTION, + "SOUTHEAST_JUNCTION" = SOUTHEAST_JUNCTION, + "SOUTHWEST_JUNCTION" = SOUTHWEST_JUNCTION, + "NORTHWEST_JUNCTION" = NORTHWEST_JUNCTION, +)) + #define NO_ADJ_FOUND 0 #define ADJ_FOUND 1 @@ -42,6 +54,45 @@ #define DEFAULT_UNDERLAY_ICON_STATE "plating" +#define SET_ADJ_IN_DIR(source, junction, direction, direction_flag) \ + do { \ + var/turf/neighbor = get_step(source, direction); \ + if(!neighbor) { \ + if(source.smoothing_flags & SMOOTH_BORDER) { \ + junction |= direction_flag; \ + }; \ + }; \ + else { \ + if(!isnull(neighbor.smoothing_groups)) { \ + for(var/target in source.canSmoothWith) { \ + if(!(source.canSmoothWith[target] & neighbor.smoothing_groups[target])) { \ + continue; \ + }; \ + junction |= direction_flag; \ + break; \ + }; \ + }; \ + if(!(junction & direction_flag) && source.smoothing_flags & SMOOTH_OBJ) { \ + for(var/obj/thing in neighbor) { \ + if(!thing.anchored || isnull(thing.smoothing_groups)) { \ + continue; \ + }; \ + for(var/target in source.canSmoothWith) { \ + if(!(source.canSmoothWith[target] & thing.smoothing_groups[target])) { \ + continue; \ + }; \ + junction |= direction_flag; \ + break; \ + }; \ + if(junction & direction_flag) { \ + break; \ + }; \ + }; \ + }; \ + }; \ + } while(FALSE) + + ///Scans all adjacent turfs to find targets to smooth with. /atom/proc/calculate_adjacencies() . = NONE @@ -57,39 +108,39 @@ if(ADJ_FOUND) . |= direction //BYOND and smooth dirs are the same for cardinals - if(. & N_NORTH) - if(. & N_WEST) + if(. & NORTH_JUNCTION) + if(. & WEST_JUNCTION) switch(find_type_in_direction(NORTHWEST)) if(NULLTURF_BORDER) if((smoothing_flags & SMOOTH_BORDER)) - . |= N_NORTHWEST + . |= NORTHWEST_JUNCTION if(ADJ_FOUND) - . |= N_NORTHWEST + . |= NORTHWEST_JUNCTION - if(. & N_EAST) + if(. & EAST_JUNCTION) switch(find_type_in_direction(NORTHEAST)) if(NULLTURF_BORDER) if((smoothing_flags & SMOOTH_BORDER)) - . |= N_NORTHEAST + . |= NORTHEAST_JUNCTION if(ADJ_FOUND) - . |= N_NORTHEAST + . |= NORTHEAST_JUNCTION - if(. & N_SOUTH) - if(. & N_WEST) + if(. & SOUTH_JUNCTION) + if(. & WEST_JUNCTION) switch(find_type_in_direction(SOUTHWEST)) if(NULLTURF_BORDER) if((smoothing_flags & SMOOTH_BORDER)) - . |= N_SOUTHWEST + . |= SOUTHWEST_JUNCTION if(ADJ_FOUND) - . |= N_SOUTHWEST + . |= SOUTHWEST_JUNCTION - if(. & N_EAST) + if(. & EAST_JUNCTION) switch(find_type_in_direction(SOUTHEAST)) if(NULLTURF_BORDER) if((smoothing_flags & SMOOTH_BORDER)) - . |= N_SOUTHEAST + . |= SOUTHEAST_JUNCTION if(ADJ_FOUND) - . |= N_SOUTHEAST + . |= SOUTHEAST_JUNCTION /atom/movable/calculate_adjacencies() @@ -104,30 +155,34 @@ if (!z) CRASH("[type] called smooth_icon() without being on a z-level") if(smoothing_flags & SMOOTH_CORNERS) - if(smoothing_flags & SMOOTH_DIAGONAL) + if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS) corners_diagonal_smooth(calculate_adjacencies()) else corners_cardinal_smooth(calculate_adjacencies()) + else if(smoothing_flags & SMOOTH_BITMASK) + bitmask_smooth() + else + CRASH("smooth_icon called for [src] with smoothing_flags == [smoothing_flags]") /atom/proc/corners_diagonal_smooth(adjacencies) switch(adjacencies) - if(N_NORTH|N_WEST) + if(NORTH_JUNCTION|WEST_JUNCTION) replace_smooth_overlays("d-se","d-se-0") - if(N_NORTH|N_EAST) + if(NORTH_JUNCTION|EAST_JUNCTION) replace_smooth_overlays("d-sw","d-sw-0") - if(N_SOUTH|N_WEST) + if(SOUTH_JUNCTION|WEST_JUNCTION) replace_smooth_overlays("d-ne","d-ne-0") - if(N_SOUTH|N_EAST) + if(SOUTH_JUNCTION|EAST_JUNCTION) replace_smooth_overlays("d-nw","d-nw-0") - if(N_NORTH|N_WEST|N_NORTHWEST) + if(NORTH_JUNCTION|WEST_JUNCTION|NORTHWEST_JUNCTION) replace_smooth_overlays("d-se","d-se-1") - if(N_NORTH|N_EAST|N_NORTHEAST) + if(NORTH_JUNCTION|EAST_JUNCTION|NORTHEAST_JUNCTION) replace_smooth_overlays("d-sw","d-sw-1") - if(N_SOUTH|N_WEST|N_SOUTHWEST) + if(SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION) replace_smooth_overlays("d-ne","d-ne-1") - if(N_SOUTH|N_EAST|N_SOUTHEAST) + if(SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION) replace_smooth_overlays("d-nw","d-nw-1") else @@ -138,93 +193,57 @@ return TRUE -//only walls should have a need to handle underlays -/turf/closed/wall/corners_diagonal_smooth(adjacencies) - . = ..() - if(!.) - return - adjacencies = reverse_ndir(adjacencies) - if(adjacencies == NONE) - return - var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) - var/list/U = list(underlay_appearance) - if(fixed_underlay) - if(fixed_underlay["space"]) - underlay_appearance.icon = 'icons/turf/space.dmi' - underlay_appearance.icon_state = SPACE_ICON_STATE - underlay_appearance.plane = PLANE_SPACE - else - underlay_appearance.icon = fixed_underlay["icon"] - underlay_appearance.icon_state = fixed_underlay["icon_state"] - else - var/turned_adjacency = turn(adjacencies, 180) - var/turf/neighbor_turf = get_step(src, turned_adjacency) - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - neighbor_turf = get_step(src, turn(adjacencies, 135)) - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - neighbor_turf = get_step(src, turn(adjacencies, 225)) - //if all else fails, ask our own turf - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency) && !get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - underlay_appearance.icon = DEFAULT_UNDERLAY_ICON - underlay_appearance.icon_state = DEFAULT_UNDERLAY_ICON_STATE - underlays = U - - // Drop posters which were previously placed on this wall. - for(var/obj/structure/sign/poster/wall_poster in src) - wall_poster.roll_and_drop(src) - - /atom/proc/corners_cardinal_smooth(adjacencies) //NW CORNER var/nw = "1-i" - if((adjacencies & N_NORTH) && (adjacencies & N_WEST)) - if(adjacencies & N_NORTHWEST) + if((adjacencies & NORTH_JUNCTION) && (adjacencies & WEST_JUNCTION)) + if(adjacencies & NORTHWEST_JUNCTION) nw = "1-f" else nw = "1-nw" else - if(adjacencies & N_NORTH) + if(adjacencies & NORTH_JUNCTION) nw = "1-n" - else if(adjacencies & N_WEST) + else if(adjacencies & WEST_JUNCTION) nw = "1-w" //NE CORNER var/ne = "2-i" - if((adjacencies & N_NORTH) && (adjacencies & N_EAST)) - if(adjacencies & N_NORTHEAST) + if((adjacencies & NORTH_JUNCTION) && (adjacencies & EAST_JUNCTION)) + if(adjacencies & NORTHEAST_JUNCTION) ne = "2-f" else ne = "2-ne" else - if(adjacencies & N_NORTH) + if(adjacencies & NORTH_JUNCTION) ne = "2-n" - else if(adjacencies & N_EAST) + else if(adjacencies & EAST_JUNCTION) ne = "2-e" //SW CORNER var/sw = "3-i" - if((adjacencies & N_SOUTH) && (adjacencies & N_WEST)) - if(adjacencies & N_SOUTHWEST) + if((adjacencies & SOUTH_JUNCTION) && (adjacencies & WEST_JUNCTION)) + if(adjacencies & SOUTHWEST_JUNCTION) sw = "3-f" else sw = "3-sw" else - if(adjacencies & N_SOUTH) + if(adjacencies & SOUTH_JUNCTION) sw = "3-s" - else if(adjacencies & N_WEST) + else if(adjacencies & WEST_JUNCTION) sw = "3-w" //SE CORNER var/se = "4-i" - if((adjacencies & N_SOUTH) && (adjacencies & N_EAST)) - if(adjacencies & N_SOUTHEAST) + if((adjacencies & SOUTH_JUNCTION) && (adjacencies & EAST_JUNCTION)) + if(adjacencies & SOUTHEAST_JUNCTION) se = "4-f" else se = "4-se" else - if(adjacencies & N_SOUTH) + if(adjacencies & SOUTH_JUNCTION) se = "4-s" - else if(adjacencies & N_EAST) + else if(adjacencies & EAST_JUNCTION) se = "4-e" var/list/new_overlays @@ -289,19 +308,95 @@ return NO_ADJ_FOUND +/** + * Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that. + * + * Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any. + * +*/ +/atom/proc/bitmask_smooth() + var/new_junction = NONE + + for(var/direction in GLOB.cardinals) //Cardinal case first. + SET_ADJ_IN_DIR(src, new_junction, direction, direction) + + if(!(new_junction & (NORTH|SOUTH)) || !(new_junction & (EAST|WEST))) + set_smoothed_icon_state(new_junction) + return + + if(new_junction & NORTH_JUNCTION) + if(new_junction & WEST_JUNCTION) + SET_ADJ_IN_DIR(src, new_junction, NORTHWEST, NORTHWEST_JUNCTION) + + if(new_junction & EAST_JUNCTION) + SET_ADJ_IN_DIR(src, new_junction, NORTHEAST, NORTHEAST_JUNCTION) + + if(new_junction & SOUTH_JUNCTION) + if(new_junction & WEST_JUNCTION) + SET_ADJ_IN_DIR(src, new_junction, SOUTHWEST, SOUTHWEST_JUNCTION) + + if(new_junction & EAST_JUNCTION) + SET_ADJ_IN_DIR(src, new_junction, SOUTHEAST, SOUTHEAST_JUNCTION) + + set_smoothed_icon_state(new_junction) + + +///Changes the icon state based on the new junction bitmask. +/atom/proc/set_smoothed_icon_state(new_junction) + smoothing_junction = new_junction + icon_state = "[base_icon_state]-[smoothing_junction]" + + +/turf/closed/set_smoothed_icon_state(new_junction) + if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS && new_junction != smoothing_junction) + switch(smoothing_junction) + if( + NORTH_JUNCTION|WEST_JUNCTION, + NORTH_JUNCTION|EAST_JUNCTION, + SOUTH_JUNCTION|WEST_JUNCTION, + SOUTH_JUNCTION|EAST_JUNCTION, + NORTH_JUNCTION|WEST_JUNCTION|NORTHWEST_JUNCTION, + NORTH_JUNCTION|EAST_JUNCTION|NORTHEAST_JUNCTION, + SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION, + SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION + ) + icon_state = "[base_icon_state]-[smoothing_junction]-d" + if(!fixed_underlay) // Mutable underlays? + var/junction_dir = reverse_ndir(smoothing_junction) + var/turned_adjacency = REVERSE_DIR(junction_dir) + var/turf/neighbor_turf = get_step(src, turned_adjacency & (NORTH|SOUTH)) + var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) + if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) + neighbor_turf = get_step(src, turned_adjacency & (EAST|WEST)) + if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) + neighbor_turf = get_step(src, turned_adjacency) + if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) + if(!get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) //if all else fails, ask our own turf + underlay_appearance.icon = DEFAULT_UNDERLAY_ICON + underlay_appearance.icon_state = DEFAULT_UNDERLAY_ICON_STATE + underlays = list(underlay_appearance) + return ..() + + +/turf/open/floor/set_smoothed_icon_state(new_junction) + if(broken || burnt) + return + return ..() + + //Icon smoothing helpers /proc/smooth_zlevel(zlevel, now = FALSE) var/list/away_turfs = block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)) for(var/V in away_turfs) var/turf/T = V - if(T.smoothing_flags) + if(T.smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) if(now) T.smooth_icon() else QUEUE_SMOOTH(T) for(var/R in T) var/atom/A = R - if(A.smoothing_flags) + if(A.smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) if(now) A.smooth_icon() else @@ -335,37 +430,37 @@ /proc/reverse_ndir(ndir) switch(ndir) - if(N_NORTH) + if(NORTH_JUNCTION) return NORTH - if(N_SOUTH) + if(SOUTH_JUNCTION) return SOUTH - if(N_WEST) + if(WEST_JUNCTION) return WEST - if(N_EAST) + if(EAST_JUNCTION) return EAST - if(N_NORTHWEST) + if(NORTHWEST_JUNCTION) return NORTHWEST - if(N_NORTHEAST) + if(NORTHEAST_JUNCTION) return NORTHEAST - if(N_SOUTHEAST) + if(SOUTHEAST_JUNCTION) return SOUTHEAST - if(N_SOUTHWEST) + if(SOUTHWEST_JUNCTION) return SOUTHWEST - if(N_NORTH|N_WEST) + if(NORTH_JUNCTION | WEST_JUNCTION) return NORTHWEST - if(N_NORTH|N_EAST) + if(NORTH_JUNCTION | EAST_JUNCTION) return NORTHEAST - if(N_SOUTH|N_WEST) + if(SOUTH_JUNCTION | WEST_JUNCTION) return SOUTHWEST - if(N_SOUTH|N_EAST) + if(SOUTH_JUNCTION | EAST_JUNCTION) return SOUTHEAST - if(N_NORTH|N_WEST|N_NORTHWEST) + if(NORTH_JUNCTION | WEST_JUNCTION | NORTHWEST_JUNCTION) return NORTHWEST - if(N_NORTH|N_EAST|N_NORTHEAST) + if(NORTH_JUNCTION | EAST_JUNCTION | NORTHEAST_JUNCTION) return NORTHEAST - if(N_SOUTH|N_WEST|N_SOUTHWEST) + if(SOUTH_JUNCTION | WEST_JUNCTION | SOUTHWEST_JUNCTION) return SOUTHWEST - if(N_SOUTH|N_EAST|N_SOUTHEAST) + if(SOUTH_JUNCTION | EAST_JUNCTION | SOUTHEAST_JUNCTION) return SOUTHEAST else return NONE @@ -376,18 +471,18 @@ name = "smooth wall" icon = 'icons/turf/smooth_wall.dmi' icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS|SMOOTH_DIAGONAL|SMOOTH_BORDER + smoothing_flags = SMOOTH_CORNERS|SMOOTH_DIAGONAL_CORNERS|SMOOTH_BORDER smoothing_groups = null canSmoothWith = null -#undef N_NORTH -#undef N_SOUTH -#undef N_EAST -#undef N_WEST -#undef N_NORTHEAST -#undef N_NORTHWEST -#undef N_SOUTHEAST -#undef N_SOUTHWEST +#undef NORTH_JUNCTION +#undef SOUTH_JUNCTION +#undef EAST_JUNCTION +#undef WEST_JUNCTION +#undef NORTHEAST_JUNCTION +#undef NORTHWEST_JUNCTION +#undef SOUTHEAST_JUNCTION +#undef SOUTHWEST_JUNCTION #undef NO_ADJ_FOUND #undef ADJ_FOUND @@ -395,3 +490,5 @@ #undef DEFAULT_UNDERLAY_ICON #undef DEFAULT_UNDERLAY_ICON_STATE + +#undef SET_ADJ_IN_DIR diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index e98f2f73f13..6be57f7c127 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -260,13 +260,6 @@ DEFINE_BITFIELD(sight, list( "SEE_TURFS" = SEE_TURFS, )) -DEFINE_BITFIELD(smooth, list( - "SMOOTH_CORNERS" = SMOOTH_CORNERS, - "SMOOTH_DIAGONAL" = SMOOTH_DIAGONAL, - "SMOOTH_BORDER" = SMOOTH_BORDER, - "SMOOTH_QUEUED" = SMOOTH_QUEUED, -)) - DEFINE_BITFIELD(vis_flags, list( "VIS_HIDE" = VIS_HIDE, "VIS_INHERIT_DIR" = VIS_INHERIT_DIR, diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 83a6cd03704..1d29e89dafb 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -124,6 +124,8 @@ ///Icon-smoothing behavior. var/smoothing_flags = NONE + ///What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags. + var/smoothing_junction = NONE ///Smoothing variable var/top_left_corner ///Smoothing variable diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 23213318ce0..8b4a36cf52f 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -101,13 +101,14 @@ name = "sandbags" desc = "Bags of sand. Self explanatory." icon = 'icons/obj/smooth_structures/sandbags.dmi' - icon_state = "sandbags" + icon_state = "sandbags-0" + base_icon_state = "sandbags" max_integrity = 280 proj_pass_rate = 20 pass_flags = LETPASSTHROW bar_material = SAND climbable = TRUE - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_SANDBAGS) canSmoothWith = list(SMOOTH_GROUP_SANDBAGS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SECURITY_BARRICADE) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 77d3ce0fb43..85e77345134 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -129,7 +129,7 @@ return // Deny placing posters on currently-diagonal walls, although the wall may change in the future. - if (smoothing_flags & SMOOTH_DIAGONAL) + if (smoothing_flags & SMOOTH_DIAGONAL_CORNERS) for (var/O in overlays) var/image/I = O if(copytext(I.icon_state, 1, 3) == "d-") //3 == length("d-") + 1 diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 55e2fef54cb..6cdbf09145e 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -52,7 +52,9 @@ /obj/effect/decal/cleanable/dirt name = "dirt" desc = "Someone should clean that up." + icon = 'icons/effects/dirt.dmi' icon_state = "dirt" + base_icon_state = "dirt" smoothing_flags = NONE smoothing_groups = list(SMOOTH_GROUP_CLEANABLE_DIRT) canSmoothWith = list(SMOOTH_GROUP_CLEANABLE_DIRT, SMOOTH_GROUP_WALLS) @@ -63,14 +65,14 @@ . = ..() var/turf/T = get_turf(src) if(T.tiled_dirt) - smoothing_flags = SMOOTH_CORNERS - icon = 'icons/effects/dirt.dmi' - icon_state = "" + smoothing_flags = SMOOTH_BITMASK QUEUE_SMOOTH(src) - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) /obj/effect/decal/cleanable/dirt/Destroy() - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) return ..() /obj/effect/decal/cleanable/dirt/dust diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 8f46d5cc463..1f262f2b466 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -27,5 +27,5 @@ name = "lattice" desc = "A lightweight support lattice." icon = 'icons/obj/smooth_structures/lattice.dmi' - icon_state = "lattice" + icon_state = "lattice-255" density = TRUE diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 6011a426d6b..c7c33d9f242 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -18,15 +18,16 @@ if (!armor) armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50) . = ..() - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) QUEUE_SMOOTH_NEIGHBORS(src) - icon_state = "" + if(smoothing_flags & SMOOTH_CORNERS) + icon_state = "" GLOB.cameranet.updateVisibility(src) /obj/structure/Destroy() GLOB.cameranet.updateVisibility(src) - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH_NEIGHBORS(src) return ..() diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index 90ce3eac648..2512ea324ec 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -53,11 +53,12 @@ name = "resin" desc = "Looks like some kind of thick resin." icon = 'icons/obj/smooth_structures/alien/resin_wall.dmi' - icon_state = "smooth" + icon_state = "resin_wall-0" + base_icon_state = "resin_wall" density = TRUE opacity = TRUE anchored = TRUE - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_ALIEN_RESIN) canSmoothWith = list(SMOOTH_GROUP_ALIEN_RESIN) max_integrity = 200 @@ -78,7 +79,8 @@ name = "resin wall" desc = "Thick resin solidified into a wall." icon = 'icons/obj/smooth_structures/alien/resin_wall.dmi' - icon_state = "smooth" //same as resin, but consistency ho! + icon_state = "resin_wall-0" + base_icon_state = "resin_wall" resintype = "wall" smoothing_groups = list(SMOOTH_GROUP_ALIEN_RESIN, SMOOTH_GROUP_ALIEN_WALLS) canSmoothWith = list(SMOOTH_GROUP_ALIEN_WALLS) @@ -90,7 +92,8 @@ name = "resin membrane" desc = "Resin just thin enough to let light pass through." icon = 'icons/obj/smooth_structures/alien/resin_membrane.dmi' - icon_state = "smooth" + icon_state = "resin_membrane-0" + base_icon_state = "resin_membrane" opacity = FALSE max_integrity = 160 resintype = "membrane" @@ -114,9 +117,11 @@ density = FALSE layer = TURF_LAYER plane = FLOOR_PLANE - icon_state = "weeds" + icon = 'icons/obj/smooth_structures/alien/weeds1.dmi' + icon_state = "weeds1-0" + base_icon_state = "weeds1" max_integrity = 15 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_ALIEN_RESIN, SMOOTH_GROUP_ALIEN_WEEDS) canSmoothWith = list(SMOOTH_GROUP_ALIEN_WEEDS, SMOOTH_GROUP_WALLS) var/last_expand = 0 //last world.time this weed expanded @@ -124,9 +129,11 @@ var/growth_cooldown_high = 200 var/static/list/blacklisted_turfs + /obj/structure/alien/weeds/Initialize() pixel_x = -4 pixel_y = -4 //so the sprites line up right in the map editor + . = ..() if(!blacklisted_turfs) @@ -135,16 +142,26 @@ /turf/open/chasm, /turf/open/lava)) + set_base_icon() last_expand = world.time + rand(growth_cooldown_low, growth_cooldown_high) - if(icon == initial(icon)) - switch(rand(1,3)) - if(1) - icon = 'icons/obj/smooth_structures/alien/weeds1.dmi' - if(2) - icon = 'icons/obj/smooth_structures/alien/weeds2.dmi' - if(3) - icon = 'icons/obj/smooth_structures/alien/weeds3.dmi' + + +///Randomizes the weeds' starting icon, gets redefined by children for them not to share the behavior. +/obj/structure/alien/weeds/proc/set_base_icon() + . = base_icon_state + switch(rand(1,3)) + if(1) + icon = 'icons/obj/smooth_structures/alien/weeds1.dmi' + base_icon_state = "weeds1" + if(2) + icon = 'icons/obj/smooth_structures/alien/weeds2.dmi' + base_icon_state = "weeds2" + if(3) + icon = 'icons/obj/smooth_structures/alien/weeds3.dmi' + base_icon_state = "weeds3" + set_smoothed_icon_state(smoothing_junction) + /obj/structure/alien/weeds/proc/expand() var/turf/U = get_turf(src) @@ -170,14 +187,16 @@ /obj/structure/alien/weeds/node name = "glowing resin" desc = "Blue bioluminescence shines from beneath the surface." - icon_state = "weednode" + icon = 'icons/obj/smooth_structures/alien/weednode.dmi' + icon_state = "weednode-0" + base_icon_state = "weednode" light_color = LIGHT_COLOR_BLUE light_power = 0.5 var/lon_range = 4 var/node_range = NODERANGE + /obj/structure/alien/weeds/node/Initialize() - icon = 'icons/obj/smooth_structures/alien/weednode.dmi' . = ..() set_light(lon_range) var/obj/structure/alien/weeds/W = locate(/obj/structure/alien/weeds) in loc @@ -185,16 +204,23 @@ qdel(W) START_PROCESSING(SSobj, src) + /obj/structure/alien/weeds/node/Destroy() STOP_PROCESSING(SSobj, src) return ..() + /obj/structure/alien/weeds/node/process() for(var/obj/structure/alien/weeds/W in range(node_range, src)) if(W.last_expand <= world.time) if(W.expand()) W.last_expand = world.time + rand(growth_cooldown_low, growth_cooldown_high) + +/obj/structure/alien/weeds/node/set_base_icon() + return //No icon randomization at init. The node's icon is already well defined. + + #undef NODERANGE diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 5389ab9de00..80cd0f3f25b 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -4,11 +4,13 @@ name = "alien nest" desc = "It's a gruesome pile of thick, sticky resin shaped like a nest." icon = 'icons/obj/smooth_structures/alien/nest.dmi' - icon_state = "nest" + icon_state = "nest-0" + base_icon_state = "nest" max_integrity = 120 can_be_unanchored = FALSE - smoothing_flags = SMOOTH_CORNERS - canSmoothWith = null + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_ALIEN_NEST) + canSmoothWith = list(SMOOTH_GROUP_ALIEN_NEST) buildstacktype = null flags_1 = NODECONSTRUCT_1 bolts = FALSE diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 3716bd9416f..891b0ba31d5 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -6,12 +6,13 @@ desc = "A huge chunk of metal used to separate rooms." anchored = TRUE icon = 'icons/turf/walls/wall.dmi' - icon_state = "wall" + icon_state = "wall-0" + base_icon_state = "wall" layer = LOW_OBJ_LAYER density = TRUE opacity = TRUE max_integrity = 100 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) canSmoothWith = list(SMOOTH_GROUP_WALLS) can_be_unanchored = FALSE @@ -63,8 +64,8 @@ icon_state = "fwall_closing" else if(density) - icon_state = initial(icon_state) - smoothing_flags = SMOOTH_CORNERS + icon_state = "[base_icon_state]-[smoothing_junction]" + smoothing_flags = SMOOTH_BITMASK QUEUE_SMOOTH(src) else icon_state = "fwall_open" @@ -133,9 +134,11 @@ name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." icon = 'icons/turf/walls/reinforced_wall.dmi' - icon_state = "r_wall" + icon_state = "reinforced_wall-0" + base_icon_state = "reinforced_wall" walltype = /turf/closed/wall/r_wall mineral = /obj/item/stack/sheet/plasteel + smoothing_flags = SMOOTH_BITMASK /obj/structure/falsewall/reinforced/examine_status(mob/user) to_chat(user, "The outer grille is fully intact.") @@ -154,9 +157,11 @@ name = "uranium wall" desc = "A wall with uranium plating. This is probably a bad idea." icon = 'icons/turf/walls/uranium_wall.dmi' - icon_state = "uranium" + icon_state = "uranium_wall-0" + base_icon_state = "uranium_wall" mineral = /obj/item/stack/sheet/mineral/uranium walltype = /turf/closed/wall/mineral/uranium + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_URANIUM_WALLS) var/active = null @@ -189,9 +194,11 @@ name = "gold wall" desc = "A wall with gold plating. Swag!" icon = 'icons/turf/walls/gold_wall.dmi' - icon_state = "gold" + icon_state = "gold_wall-0" + base_icon_state = "gold_wall" mineral = /obj/item/stack/sheet/mineral/gold walltype = /turf/closed/wall/mineral/gold + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS) canSmoothWith = list(SMOOTH_GROUP_GOLD_WALLS) @@ -199,9 +206,11 @@ name = "silver wall" desc = "A wall with silver plating. Shiny." icon = 'icons/turf/walls/silver_wall.dmi' - icon_state = "silver" + icon_state = "silver_wall-0" + base_icon_state = "silver_wall" mineral = /obj/item/stack/sheet/mineral/silver walltype = /turf/closed/wall/mineral/silver + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS) canSmoothWith = list(SMOOTH_GROUP_SILVER_WALLS) @@ -209,9 +218,11 @@ name = "diamond wall" desc = "A wall with diamond plating. You monster." icon = 'icons/turf/walls/diamond_wall.dmi' - icon_state = "diamond" + icon_state = "diamond_wall-0" + base_icon_state = "diamond_wall" mineral = /obj/item/stack/sheet/mineral/diamond walltype = /turf/closed/wall/mineral/diamond + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS) canSmoothWith = list(SMOOTH_GROUP_DIAMOND_WALLS) max_integrity = 800 @@ -220,9 +231,11 @@ name = "plasma wall" desc = "A wall with plasma plating. This is definitely a bad idea." icon = 'icons/turf/walls/plasma_wall.dmi' - icon_state = "plasma" + icon_state = "plasma_wall-0" + base_icon_state = "plasma_wall" mineral = /obj/item/stack/sheet/mineral/plasma walltype = /turf/closed/wall/mineral/plasma + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) @@ -249,9 +262,11 @@ name = "bananium wall" desc = "A wall with bananium plating. Honk!" icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium" + icon_state = "bananium_wall-0" + base_icon_state = "bananium_wall" mineral = /obj/item/stack/sheet/mineral/bananium walltype = /turf/closed/wall/mineral/bananium + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) @@ -260,9 +275,11 @@ name = "sandstone wall" desc = "A wall with sandstone plating. Rough." icon = 'icons/turf/walls/sandstone_wall.dmi' - icon_state = "sandstone" + icon_state = "sandstone_wall-0" + base_icon_state = "sandstone_wall" mineral = /obj/item/stack/sheet/mineral/sandstone walltype = /turf/closed/wall/mineral/sandstone + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS) canSmoothWith = list(SMOOTH_GROUP_SANDSTONE_WALLS) @@ -270,9 +287,11 @@ name = "wooden wall" desc = "A wall with wooden plating. Stiff." icon = 'icons/turf/walls/wood_wall.dmi' - icon_state = "wood" + icon_state = "wood_wall-0" + base_icon_state = "wood_wall" mineral = /obj/item/stack/sheet/mineral/wood walltype = /turf/closed/wall/mineral/wood + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) @@ -280,10 +299,13 @@ name = "rough metal wall" desc = "A wall with rough metal plating." icon = 'icons/turf/walls/iron_wall.dmi' - icon_state = "iron" + icon_state = "iron_wall-0" + base_icon_state = "iron_wall" mineral = /obj/item/stack/rods mineral_amount = 5 walltype = /turf/closed/wall/mineral/iron + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) @@ -291,9 +313,11 @@ name = "alien wall" desc = "A wall with alien alloy plating." icon = 'icons/turf/walls/abductor_wall.dmi' - icon_state = "abductor" + icon_state = "abductor_wall-0" + base_icon_state = "abductor_wall" mineral = /obj/item/stack/sheet/mineral/abductor walltype = /turf/closed/wall/mineral/abductor + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) @@ -301,10 +325,11 @@ name = "wall" desc = "A light-weight titanium wall used in shuttles." icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "shuttle" + icon_state = "shuttle_wall-0" + base_icon_state = "shuttle_wall" mineral = /obj/item/stack/sheet/mineral/titanium walltype = /turf/closed/wall/mineral/titanium - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) @@ -312,9 +337,10 @@ name = "wall" desc = "An evil wall of plasma and titanium." icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "shuttle" + icon_state = "plastitanium_wall-0" + base_icon_state = "plastitanium_wall" mineral = /obj/item/stack/sheet/mineral/plastitanium walltype = /turf/closed/wall/mineral/plastitanium - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index 4ea4c5a35fb..f4849995a8b 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -252,8 +252,9 @@ name = "hedge" desc = "A large bushy hedge." icon = 'icons/obj/smooth_structures/hedge.dmi' - icon_state = "hedge" - smoothing_flags = SMOOTH_CORNERS + icon_state = "hedge-0" + base_icon_state = "hedge" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_HEDGE_FLUFF) canSmoothWith = list(SMOOTH_GROUP_HEDGE_FLUFF) density = TRUE diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index b3fc1d503b6..fc5b4818163 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -31,7 +31,7 @@ var/ratio = obj_integrity / max_integrity ratio = CEILING(ratio*4, 1) * 25 - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) if(ratio > 50) diff --git a/code/game/objects/structures/industrial_lift.dm b/code/game/objects/structures/industrial_lift.dm index 5727bf7237d..adcc13270fd 100644 --- a/code/game/objects/structures/industrial_lift.dm +++ b/code/game/objects/structures/industrial_lift.dm @@ -135,16 +135,17 @@ GLOBAL_LIST_EMPTY(lifts) name = "lift platform" desc = "A lightweight lift platform. It moves up and down." icon = 'icons/obj/smooth_structures/catwalk.dmi' - icon_state = "catwalk" + icon_state = "catwalk-0" + base_icon_state = "catwalk" density = FALSE anchored = TRUE armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50) max_integrity = 50 layer = LATTICE_LAYER //under pipes plane = FLOOR_PLANE - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_INDUSTRIAL_LIFT) - canSmoothWith = null + canSmoothWith = list(SMOOTH_GROUP_INDUSTRIAL_LIFT) obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN var/id = null //ONLY SET THIS TO ONE OF THE LIFT'S PARTS. THEY'RE CONNECTED! ONLY ONE NEEDS THE SIGNAL! diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index b0f731e4df9..eacfe6142e7 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -2,7 +2,8 @@ name = "lattice" desc = "A lightweight support lattice. These hold our station together." icon = 'icons/obj/smooth_structures/lattice.dmi' - icon_state = "lattice" + icon_state = "lattice-255" + base_icon_state = "lattice" density = FALSE anchored = TRUE armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50) @@ -10,7 +11,7 @@ layer = LATTICE_LAYER //under pipes plane = FLOOR_PLANE obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_LATTICE) canSmoothWith = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_WALLS) var/number_of_mats = 1 @@ -72,11 +73,12 @@ name = "catwalk" desc = "A catwalk for easier EVA maneuvering and cable placement." icon = 'icons/obj/smooth_structures/catwalk.dmi' - icon_state = "catwalk" + icon_state = "catwalk-0" + base_icon_state = "catwalk" number_of_mats = 2 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_OPEN_FLOOR) - canSmoothWith = null + canSmoothWith = list(SMOOTH_GROUP_LATTICE) obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP /obj/structure/lattice/catwalk/deconstruction_hints(mob/user) @@ -98,12 +100,13 @@ name = "heatproof support lattice" desc = "A specialized support beam for building across lava. Watch your step." icon = 'icons/obj/smooth_structures/catwalk.dmi' - icon_state = "catwalk" + icon_state = "catwalk-0" + base_icon_state = "catwalk" number_of_mats = 1 color = "#5286b9ff" - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = null - canSmoothWith = null + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_OPEN_FLOOR) + canSmoothWith = list(SMOOTH_GROUP_LATTICE) obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP resistance_flags = FIRE_PROOF | LAVA_PROOF diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index a399427fe10..4d629b85d5e 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -311,7 +311,8 @@ /obj/structure/mineral_door/paperframe/Initialize() . = ..() - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) /obj/structure/mineral_door/paperframe/examine(mob/user) . = ..() @@ -346,5 +347,6 @@ return /obj/structure/mineral_door/paperframe/Destroy() - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) return ..() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index c69100442d2..e2aa6ad4242 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -16,7 +16,8 @@ name = "table" desc = "A square piece of metal standing on four metal legs. It can not move." icon = 'icons/obj/smooth_structures/table.dmi' - icon_state = "table" + icon_state = "table-0" + base_icon_state = "table" density = TRUE anchored = TRUE layer = TABLE_LAYER @@ -32,7 +33,7 @@ custom_materials = list(/datum/material/iron = 2000) max_integrity = 100 integrity_failure = 0.33 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_TABLES) canSmoothWith = list(SMOOTH_GROUP_TABLES) @@ -44,7 +45,7 @@ return "The top is screwed on, but the main bolts are also visible." /obj/structure/table/update_icon() - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) QUEUE_SMOOTH_NEIGHBORS(src) @@ -257,7 +258,8 @@ /obj/structure/table/greyscale icon = 'icons/obj/smooth_structures/table_greyscale.dmi' - icon_state = "table" + icon_state = "table_greyscale-0" + base_icon_state = "table_greyscale" material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS buildstack = null //No buildstack, so generate from mat datums @@ -302,10 +304,11 @@ name = "glass table" desc = "What did I say about leaning on the glass tables? Now you need surgery." icon = 'icons/obj/smooth_structures/glass_table.dmi' - icon_state = "glass_table" + icon_state = "glass_table-0" + base_icon_state = "glass_table" buildstack = /obj/item/stack/sheet/glass - smoothing_groups = null - canSmoothWith = null + smoothing_groups = list(SMOOTH_GROUP_GLASS_TABLES) + canSmoothWith = list(SMOOTH_GROUP_GLASS_TABLES) max_integrity = 70 resistance_flags = ACID_PROOF armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 100) @@ -381,7 +384,8 @@ name = "wooden table" desc = "Do not apply fire to this. Rumour says it burns easily." icon = 'icons/obj/smooth_structures/wood_table.dmi' - icon_state = "wood_table" + icon_state = "wood_table-0" + base_icon_state = "wood_table" frame = /obj/structure/table_frame/wood framestack = /obj/item/stack/sheet/mineral/wood buildstack = /obj/item/stack/sheet/mineral/wood @@ -398,7 +402,8 @@ name = "gambling table" desc = "A seedy table for seedy dealings in seedy places." icon = 'icons/obj/smooth_structures/poker_table.dmi' - icon_state = "poker_table" + icon_state = "poker_table-0" + base_icon_state = "poker_table" buildstack = /obj/item/stack/tile/carpet /obj/structure/table/wood/poker/narsie_act() @@ -409,6 +414,7 @@ desc = "A standard metal table frame covered with an amazingly fancy, patterned cloth." icon = 'icons/obj/structures.dmi' icon_state = "fancy_table" + base_icon_state = "fancy_table" frame = /obj/structure/table_frame framestack = /obj/item/stack/rods buildstack = /obj/item/stack/tile/carpet @@ -426,46 +432,55 @@ /obj/structure/table/wood/fancy/black icon_state = "fancy_table_black" + base_icon_state = "fancy_table_black" buildstack = /obj/item/stack/tile/carpet/black smooth_icon = 'icons/obj/smooth_structures/fancy_table_black.dmi' /obj/structure/table/wood/fancy/blue icon_state = "fancy_table_blue" + base_icon_state = "fancy_table_blue" buildstack = /obj/item/stack/tile/carpet/blue smooth_icon = 'icons/obj/smooth_structures/fancy_table_blue.dmi' /obj/structure/table/wood/fancy/cyan icon_state = "fancy_table_cyan" + base_icon_state = "fancy_table_cyan" buildstack = /obj/item/stack/tile/carpet/cyan smooth_icon = 'icons/obj/smooth_structures/fancy_table_cyan.dmi' /obj/structure/table/wood/fancy/green icon_state = "fancy_table_green" + base_icon_state = "fancy_table_green" buildstack = /obj/item/stack/tile/carpet/green smooth_icon = 'icons/obj/smooth_structures/fancy_table_green.dmi' /obj/structure/table/wood/fancy/orange icon_state = "fancy_table_orange" + base_icon_state = "fancy_table_orange" buildstack = /obj/item/stack/tile/carpet/orange smooth_icon = 'icons/obj/smooth_structures/fancy_table_orange.dmi' /obj/structure/table/wood/fancy/purple icon_state = "fancy_table_purple" + base_icon_state = "fancy_table_purple" buildstack = /obj/item/stack/tile/carpet/purple smooth_icon = 'icons/obj/smooth_structures/fancy_table_purple.dmi' /obj/structure/table/wood/fancy/red icon_state = "fancy_table_red" + base_icon_state = "fancy_table_red" buildstack = /obj/item/stack/tile/carpet/red smooth_icon = 'icons/obj/smooth_structures/fancy_table_red.dmi' /obj/structure/table/wood/fancy/royalblack icon_state = "fancy_table_royalblack" + base_icon_state = "fancy_table_royalblack" buildstack = /obj/item/stack/tile/carpet/royalblack smooth_icon = 'icons/obj/smooth_structures/fancy_table_royalblack.dmi' /obj/structure/table/wood/fancy/royalblue icon_state = "fancy_table_royalblue" + base_icon_state = "fancy_table_royalblue" buildstack = /obj/item/stack/tile/carpet/royalblue smooth_icon = 'icons/obj/smooth_structures/fancy_table_royalblue.dmi' @@ -476,7 +491,8 @@ name = "reinforced table" desc = "A reinforced version of the four legged table." icon = 'icons/obj/smooth_structures/reinforced_table.dmi' - icon_state = "r_table" + icon_state = "reinforced_table-0" + base_icon_state = "reinforced_table" deconstruction_ready = 0 buildstack = /obj/item/stack/sheet/plasteel max_integrity = 200 @@ -511,7 +527,8 @@ name = "bronze table" desc = "A solid table made out of bronze." icon = 'icons/obj/smooth_structures/brass_table.dmi' - icon_state = "brass_table" + icon_state = "brass_table-0" + base_icon_state = "brass_table" resistance_flags = FIRE_PROOF | ACID_PROOF buildstack = /obj/item/stack/tile/bronze smoothing_groups = list(SMOOTH_GROUP_BRONZE_TABLES) //Don't smooth with SMOOTH_GROUP_TABLES diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 3774a9c33d4..d66f3b97c45 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -317,7 +317,7 @@ //This proc is used to update the icons of nearby windows. /obj/structure/window/proc/update_nearby_icons() update_icon() - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH_NEIGHBORS(src) //merges adjacent full-tile windows into one @@ -330,7 +330,7 @@ var/ratio = obj_integrity / max_integrity ratio = CEILING(ratio*4, 1) * 25 - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) cut_overlay(crack_overlay) @@ -598,12 +598,13 @@ /obj/structure/window/fulltile icon = 'icons/obj/smooth_structures/window.dmi' - icon_state = "window" + icon_state = "window-0" + base_icon_state = "window" dir = FULLTILE_WINDOW_DIR max_integrity = 50 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) glass_amount = 2 @@ -613,12 +614,13 @@ /obj/structure/window/plasma/fulltile icon = 'icons/obj/smooth_structures/plasma_window.dmi' - icon_state = "plasmawindow" + icon_state = "plasma_window-0" + base_icon_state = "plasma_window" dir = FULLTILE_WINDOW_DIR max_integrity = 300 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) glass_amount = 2 @@ -628,13 +630,14 @@ /obj/structure/window/plasma/reinforced/fulltile icon = 'icons/obj/smooth_structures/rplasma_window.dmi' - icon_state = "rplasmawindow" + icon_state = "rplasma_window-0" + base_icon_state = "rplasma_window" dir = FULLTILE_WINDOW_DIR state = RWINDOW_SECURE max_integrity = 1000 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) glass_amount = 2 @@ -645,13 +648,14 @@ /obj/structure/window/reinforced/fulltile icon = 'icons/obj/smooth_structures/reinforced_window.dmi' - icon_state = "r_window" + icon_state = "reinforced_window-0" + base_icon_state = "reinforced_window" dir = FULLTILE_WINDOW_DIR max_integrity = 150 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 state = RWINDOW_SECURE - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) glass_amount = 2 @@ -662,18 +666,20 @@ /obj/structure/window/reinforced/tinted/fulltile icon = 'icons/obj/smooth_structures/tinted_window.dmi' - icon_state = "tinted_window" + icon_state = "tinted_window-0" + base_icon_state = "tinted_window" dir = FULLTILE_WINDOW_DIR fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) glass_amount = 2 /obj/structure/window/reinforced/fulltile/ice icon = 'icons/obj/smooth_structures/rice_window.dmi' - icon_state = "ice_window" + icon_state = "rice_window-0" + base_icon_state = "rice_window" max_integrity = 150 glass_amount = 2 @@ -681,7 +687,8 @@ name = "shuttle window" desc = "A reinforced, air-locked pod window." icon = 'icons/obj/smooth_structures/shuttle_window.dmi' - icon_state = "shuttle_window" + icon_state = "shuttle_window-0" + base_icon_state = "shuttle_window" dir = FULLTILE_WINDOW_DIR max_integrity = 150 wtype = "shuttle" @@ -690,9 +697,9 @@ reinf = TRUE heat_resistance = 1600 armor = list(MELEE = 90, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 100) - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS) - canSmoothWith = null + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) explosion_block = 3 glass_type = /obj/item/stack/sheet/titaniumglass glass_amount = 2 @@ -711,7 +718,8 @@ name = "plastitanium window" desc = "A durable looking window made of an alloy of of plasma and titanium." icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' - icon_state = "plastitanium_window" + icon_state = "plastitanium_window-0" + base_icon_state = "plastitanium_window" dir = FULLTILE_WINDOW_DIR max_integrity = 1200 wtype = "shuttle" @@ -719,9 +727,9 @@ flags_1 = PREVENT_CLICK_UNDER_1 heat_resistance = 1600 armor = list(MELEE = 95, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 100) - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS) - canSmoothWith = null + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) explosion_block = 3 damage_deflection = 21 //The same as reinforced plasma windows.3 glass_type = /obj/item/stack/sheet/plastitaniumglass @@ -736,13 +744,14 @@ name = "paper frame" desc = "A fragile separator made of thin wood and paper." icon = 'icons/obj/smooth_structures/paperframes.dmi' - icon_state = "frame" + icon_state = "paperframes-0" + base_icon_state = "paperframes" dir = FULLTILE_WINDOW_DIR opacity = TRUE max_integrity = 15 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_PAPERFRAME) canSmoothWith = list(SMOOTH_GROUP_PAPERFRAME) glass_amount = 2 @@ -791,7 +800,8 @@ cut_overlay(torn) add_overlay(paper) set_opacity(TRUE) - QUEUE_SMOOTH(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH(src) /obj/structure/window/paperframe/attackby(obj/item/W, mob/user) @@ -823,10 +833,11 @@ anchored = FALSE /obj/structure/window/bronze/fulltile - icon_state = "clockwork_window" - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) - canSmoothWith = null + icon_state = "clockwork_window-0" + base_icon_state = "clockwork_window" + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE) fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 dir = FULLTILE_WINDOW_DIR diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index 3cf5b936584..b7776acb47c 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -285,7 +285,8 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( for(var/obj/machinery/door/firedoor/FD in T) FD.CalculateAffectingAreas() - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) HandleTurfChange(src) diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index bb3a77d64d1..a6d2dda993a 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -48,9 +48,10 @@ name = "sandstone wall" desc = "A wall with sandstone plating. Rough." icon = 'icons/turf/walls/sandstone_wall.dmi' - icon_state = "sandstone" + icon_state = "sandstone_wall-0" + base_icon_state = "sandstone_wall" baseturfs = /turf/closed/indestructible/sandstone - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK /turf/closed/indestructible/oldshuttle/corner icon_state = "corner" @@ -78,30 +79,39 @@ /turf/closed/indestructible/riveted icon = 'icons/turf/walls/riveted.dmi' - icon_state = "riveted" - smoothing_flags = SMOOTH_CORNERS + icon_state = "riveted-0" + base_icon_state = "riveted" + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS) + canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) /turf/closed/indestructible/syndicate icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle" - smoothing_flags = SMOOTH_CORNERS + icon_state = "plastitanium_wall-0" + base_icon_state = "plastitanium_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS) canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' - icon_state = "uranium" + icon_state = "uranium_wall-0" + base_icon_state = "uranium_wall" + smoothing_flags = SMOOTH_BITMASK /turf/closed/indestructible/riveted/plastinum name = "plastinum wall" desc = "A luxurious wall made out of a plasma-platinum alloy. Effectively impervious to conventional methods of destruction." icon = 'icons/turf/walls/plastinum_wall.dmi' - icon_state = "shuttle" + icon_state = "plastinum_wall-0" + base_icon_state = "plastinum_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS /turf/closed/indestructible/wood icon = 'icons/turf/walls/wood_wall.dmi' - icon_state = "wood" - smoothing_flags = SMOOTH_CORNERS + icon_state = "wood_wall-0" + base_icon_state = "wood_wall" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) @@ -111,27 +121,32 @@ /turf/closed/indestructible/opshuttle icon_state = "wall3" + /turf/closed/indestructible/fakeglass name = "window" - icon_state = "fake_window" - opacity = FALSE - smoothing_flags = SMOOTH_CORNERS icon = 'icons/obj/smooth_structures/reinforced_window.dmi' + icon_state = "fake_window" + base_icon_state = "reinforced_window" + opacity = FALSE + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) /turf/closed/indestructible/fakeglass/Initialize() . = ..() - icon_state = null //set the icon state to null, so our base state isn't visible underlays += mutable_appearance('icons/obj/structures.dmi', "grille") //add a grille underlay underlays += mutable_appearance('icons/turf/floors.dmi', "plating") //add the plating underlay, below the grille + /turf/closed/indestructible/opsglass name = "window" - icon_state = "plastitanium_window" - opacity = FALSE - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS) - canSmoothWith = null icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' + icon_state = "plastitanium_window-0" + base_icon_state = "plastitanium_window" + opacity = FALSE + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) /turf/closed/indestructible/opsglass/Initialize() . = ..() @@ -166,8 +181,9 @@ /turf/closed/indestructible/rock/snow/ice/ore icon = 'icons/turf/walls/icerock_wall.dmi' - icon_state = "icerock" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon_state = "icerock_wall-0" + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) pixel_x = -4 pixel_y = -4 @@ -196,7 +212,9 @@ name = "necropolis wall" desc = "A thick, seemingly indestructible stone wall." icon = 'icons/turf/walls/boss_wall.dmi' - icon_state = "wall" + icon_state = "boss_wall-0" + base_icon_state = "boss_wall" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_BOSS_WALLS) canSmoothWith = list(SMOOTH_GROUP_BOSS_WALLS) explosion_block = 50 @@ -215,3 +233,4 @@ desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern." icon = 'icons/turf/walls/hierophant_wall.dmi' icon_state = "wall" + smoothing_flags = SMOOTH_CORNERS diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index ed4577363a6..c36fbcbf4a3 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -4,8 +4,7 @@ name = "rock" icon = 'icons/turf/mining.dmi' icon_state = "rock" - var/smooth_icon = 'icons/turf/smoothrocks.dmi' - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_MINERAL_WALLS) canSmoothWith = list(SMOOTH_GROUP_MINERAL_WALLS) baseturfs = /turf/open/floor/plating/asteroid/airless @@ -14,6 +13,8 @@ density = TRUE layer = EDGED_TURF_LAYER temperature = TCMB + base_icon_state = "smoothrocks" + var/smooth_icon = 'icons/turf/smoothrocks.dmi' var/environment_type = "asteroid" var/turf/open/floor/plating/turf_type = /turf/open/floor/plating/asteroid/airless var/obj/item/stack/ore/mineralType = null @@ -254,7 +255,8 @@ icon = 'icons/turf/mining.dmi' smooth_icon = 'icons/turf/walls/mountain_wall.dmi' icon_state = "mountainrock" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + base_icon_state = "mountain_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) defer_change = TRUE environment_type = "snow_cavern" @@ -273,6 +275,9 @@ if(mineralType) smooth_icon = 'icons/turf/walls/icerock_wall.dmi' icon = 'icons/turf/walls/icerock_wall.dmi' + icon_state = "icerock_wall-0" + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER /turf/closed/mineral/random/snow/more_caves mineralSpawnChanceList = list( @@ -324,7 +329,8 @@ icon = 'icons/turf/mining.dmi' smooth_icon = 'icons/turf/walls/mountain_wall.dmi' icon_state = "mountainrock" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + base_icon_state = "mountain_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) defer_change = TRUE environment_type = "snow" @@ -353,6 +359,8 @@ environment_type = "snow_cavern" icon_state = "icerock_iron" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -378,6 +386,8 @@ environment_type = "snow_cavern" icon_state = "icerock_Uranium" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -403,6 +413,8 @@ environment_type = "snow_cavern" icon_state = "icerock_diamond" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -428,6 +440,8 @@ environment_type = "snow_cavern" icon_state = "icerock_gold" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -453,6 +467,8 @@ environment_type = "snow_cavern" icon_state = "icerock_silver" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -478,6 +494,8 @@ environment_type = "snow_cavern" icon_state = "icerock_titanium" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -503,6 +521,8 @@ environment_type = "snow_cavern" icon_state = "icerock_plasma" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -522,6 +542,8 @@ environment_type = "snow_cavern" icon_state = "icerock_Bananium" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -548,6 +570,8 @@ environment_type = "snow_cavern" icon_state = "icerock_BScrystal" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -575,7 +599,8 @@ icon = 'icons/turf/mining.dmi' smooth_icon = 'icons/turf/walls/rock_wall.dmi' icon_state = "rock2" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + base_icon_state = "rock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) baseturfs = /turf/open/floor/plating/ashplanet/wateryrock initial_gas_mix = OPENTURF_LOW_PRESSURE @@ -588,7 +613,8 @@ icon = 'icons/turf/mining.dmi' smooth_icon = 'icons/turf/walls/mountain_wall.dmi' icon_state = "mountainrock" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + base_icon_state = "mountain_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) baseturfs = /turf/open/floor/plating/asteroid/snow initial_gas_mix = FROZEN_ATMOS @@ -606,7 +632,8 @@ icon = 'icons/turf/mining.dmi' smooth_icon = 'icons/turf/walls/icerock_wall.dmi' icon_state = "icerock" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER baseturfs = /turf/open/floor/plating/asteroid/snow/ice environment_type = "snow_cavern" turf_type = /turf/open/floor/plating/asteroid/snow/ice @@ -716,6 +743,8 @@ environment_type = "snow_cavern" icon_state = "icerock_Gibtonite" smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + base_icon_state = "icerock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/floor/plating/asteroid/snow/ice baseturfs = /turf/open/floor/plating/asteroid/snow/ice initial_gas_mix = FROZEN_ATMOS @@ -735,6 +764,8 @@ initial_gas_mix = LAVALAND_DEFAULT_ATMOS defer_change = 1 smooth_icon = 'icons/turf/walls/rock_wall.dmi' + base_icon_state = "rock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER /turf/closed/mineral/strong/attackby(obj/item/I, mob/user, params) if(!ishuman(user)) diff --git a/code/game/turfs/closed/wall/material_walls.dm b/code/game/turfs/closed/wall/material_walls.dm index bb98ab34cf5..6dcfd6d221a 100644 --- a/code/game/turfs/closed/wall/material_walls.dm +++ b/code/game/turfs/closed/wall/material_walls.dm @@ -2,8 +2,9 @@ name = "wall" desc = "A huge chunk of material used to separate rooms." icon = 'icons/turf/walls/materialwall.dmi' - icon_state = "wall" - smoothing_flags = SMOOTH_CORNERS + icon_state = "materialwall-0" + base_icon_state = "materialwall" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_MATERIAL_WALLS) canSmoothWith = list(SMOOTH_GROUP_MATERIAL_WALLS) material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index b306dad9397..a668d48d0ac 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -2,7 +2,7 @@ name = "mineral wall" desc = "This shouldn't exist" icon_state = "" - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK canSmoothWith = null var/last_event = 0 var/active = null @@ -21,8 +21,10 @@ name = "silver wall" desc = "A wall with silver plating. Shiny!" icon = 'icons/turf/walls/silver_wall.dmi' - icon_state = "silver" + icon_state = "silver_wall-0" + base_icon_state = "silver_wall" sheet_type = /obj/item/stack/sheet/mineral/silver + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS) canSmoothWith = list(SMOOTH_GROUP_SILVER_WALLS) @@ -30,10 +32,12 @@ name = "diamond wall" desc = "A wall with diamond plating. You monster." icon = 'icons/turf/walls/diamond_wall.dmi' - icon_state = "diamond" + icon_state = "diamond_wall-0" + base_icon_state = "diamond_wall" sheet_type = /obj/item/stack/sheet/mineral/diamond slicing_duration = 200 //diamond wall takes twice as much time to slice explosion_block = 3 + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS) canSmoothWith = list(SMOOTH_GROUP_DIAMOND_WALLS) @@ -44,8 +48,10 @@ name = "bananium wall" desc = "A wall with bananium plating. Honk!" icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium" + icon_state = "bananium_wall-0" + base_icon_state = "bananium_wall" sheet_type = /obj/item/stack/sheet/mineral/bananium + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) @@ -53,9 +59,11 @@ name = "sandstone wall" desc = "A wall with sandstone plating. Rough." icon = 'icons/turf/walls/sandstone_wall.dmi' - icon_state = "sandstone" + icon_state = "sandstone_wall-0" + base_icon_state = "sandstone_wall" sheet_type = /obj/item/stack/sheet/mineral/sandstone explosion_block = 0 + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS) canSmoothWith = list(SMOOTH_GROUP_SANDSTONE_WALLS) @@ -64,8 +72,10 @@ name = "uranium wall" desc = "A wall with uranium plating. This is probably a bad idea." icon = 'icons/turf/walls/uranium_wall.dmi' - icon_state = "uranium" + icon_state = "uranium_wall-0" + base_icon_state = "uranium_wall" sheet_type = /obj/item/stack/sheet/mineral/uranium + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_URANIUM_WALLS) @@ -100,9 +110,11 @@ name = "plasma wall" desc = "A wall with plasma plating. This is definitely a bad idea." icon = 'icons/turf/walls/plasma_wall.dmi' - icon_state = "plasma" + icon_state = "plasma_wall-0" + base_icon_state = "plasma_wall" sheet_type = /obj/item/stack/sheet/mineral/plasma thermal_conductivity = 0.04 + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) @@ -139,10 +151,12 @@ name = "wooden wall" desc = "A wall with wooden plating. Stiff." icon = 'icons/turf/walls/wood_wall.dmi' - icon_state = "wood" + icon_state = "wood_wall-0" + base_icon_state = "wood_wall" sheet_type = /obj/item/stack/sheet/mineral/wood hardness = 70 explosion_block = 0 + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) @@ -168,8 +182,10 @@ name = "rough metal wall" desc = "A wall with rough metal plating." icon = 'icons/turf/walls/iron_wall.dmi' - icon_state = "iron" + icon_state = "iron_wall-0" + base_icon_state = "iron_wall" sheet_type = /obj/item/stack/rods + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) @@ -177,7 +193,9 @@ name = "packed snow wall" desc = "A wall made of densely packed snow blocks." icon = 'icons/turf/walls/snow_wall.dmi' - icon_state = "snow" + icon_state = "snow_wall-0" + base_icon_state = "snow_wall" + smoothing_flags = SMOOTH_BITMASK hardness = 80 explosion_block = 0 slicing_duration = 30 @@ -194,11 +212,12 @@ name = "alien wall" desc = "A wall with alien alloy plating." icon = 'icons/turf/walls/abductor_wall.dmi' - icon_state = "abductor" + icon_state = "abductor_wall-0" + base_icon_state = "abductor_wall" sheet_type = /obj/item/stack/sheet/mineral/abductor slicing_duration = 200 //alien wall takes twice as much time to slice explosion_block = 3 - smoothing_flags = SMOOTH_CORNERS|SMOOTH_DIAGONAL + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) @@ -208,12 +227,13 @@ name = "wall" desc = "A light-weight titanium wall used in shuttles." icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "map-shuttle" + icon_state = "shuttle_wall-0" + base_icon_state = "shuttle_wall" explosion_block = 3 flags_1 = CAN_BE_DIRTY_1 flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD sheet_type = /obj/item/stack/sheet/mineral/titanium - smoothing_flags = SMOOTH_CORNERS | SMOOTH_DIAGONAL + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) @@ -221,8 +241,10 @@ return // titanium does not rust /turf/closed/wall/mineral/titanium/nodiagonal - smoothing_flags = SMOOTH_CORNERS + icon = 'icons/turf/walls/shuttle_wall.dmi' icon_state = "map-shuttle_nd" + base_icon_state = "shuttle_wall" + smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/titanium/nosmooth icon = 'icons/turf/shuttle.dmi' @@ -231,7 +253,8 @@ /turf/closed/wall/mineral/titanium/overspace icon_state = "map-overspace" - fixed_underlay = list("space"=1) + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + fixed_underlay = list("space" = TRUE) //sub-type to be used for interior shuttle walls //won't get an underlay of the destination turf on shuttle move @@ -260,12 +283,16 @@ name = "pod wall" desc = "An easily-compressable wall used for temporary shelter." icon = 'icons/turf/walls/survival_pod_walls.dmi' - icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_DIAGONAL + icon_state = "survival_pod_walls-0" + base_icon_state = "survival_pod_walls" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_SHUTTLE_PARTS) /turf/closed/wall/mineral/titanium/survival/nodiagonal - smoothing_flags = SMOOTH_CORNERS + icon = 'icons/turf/walls/survival_pod_walls.dmi' + icon_state = "survival_pod_walls-0" + base_icon_state = "survival_pod_walls" + smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/titanium/survival/pod smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_SURVIVAL_TIANIUM_POD) @@ -277,10 +304,11 @@ name = "wall" desc = "A durable wall made of an alloy of plasma and titanium." icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle" + icon_state = "plastitanium_wall-0" + base_icon_state = "plastitanium_wall" explosion_block = 4 sheet_type = /obj/item/stack/sheet/mineral/plastitanium - smoothing_flags = SMOOTH_CORNERS | SMOOTH_DIAGONAL + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) @@ -288,8 +316,10 @@ return // plastitanium does not rust /turf/closed/wall/mineral/plastitanium/nodiagonal - smoothing_flags = SMOOTH_CORNERS + icon = 'icons/turf/walls/plastitanium_wall.dmi' icon_state = "map-shuttle_nd" + base_icon_state = "plastitanium_wall" + smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/plastitanium/nosmooth icon = 'icons/turf/shuttle.dmi' @@ -298,7 +328,9 @@ /turf/closed/wall/mineral/plastitanium/overspace icon_state = "map-overspace" - fixed_underlay = list("space"=1) + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + fixed_underlay = list("space" = TRUE) + /turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity) var/obj/item/bombcore/large/bombcore = new(get_turf(src)) diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm index 22f8b8df858..f1d78e1ed03 100644 --- a/code/game/turfs/closed/wall/misc_walls.dm +++ b/code/game/turfs/closed/wall/misc_walls.dm @@ -2,8 +2,9 @@ name = "runed metal wall" desc = "A cold metal wall engraved with indecipherable symbols. Studying them causes your head to pound." icon = 'icons/turf/walls/cult_wall.dmi' - icon_state = "cult" - smoothing_flags = SMOOTH_CORNERS + icon_state = "cult_wall-0" + base_icon_state = "cult_wall" + smoothing_flags = SMOOTH_BITMASK canSmoothWith = null sheet_type = /obj/item/stack/sheet/runed_metal sheet_amount = 1 @@ -43,8 +44,10 @@ /turf/closed/wall/ice icon = 'icons/turf/walls/icedmetal_wall.dmi' - icon_state = "iced" + icon_state = "icedmetal_wall-0" + base_icon_state = "icedmetal_wall" desc = "A wall covered in a thick sheet of ice." + smoothing_flags = SMOOTH_BITMASK canSmoothWith = null hardness = 35 slicing_duration = 150 //welding through the ice+metal @@ -54,6 +57,9 @@ name = "rusted wall" desc = "A rusted metal wall." icon = 'icons/turf/walls/rusty_wall.dmi' + icon_state = "rusty_wall-0" + base_icon_state = "rusty_wall" + smoothing_flags = SMOOTH_BITMASK hardness = 45 /turf/closed/wall/rust/rust_heretic_act() @@ -63,6 +69,9 @@ name = "rusted reinforced wall" desc = "A huge chunk of rusted reinforced metal." icon = 'icons/turf/walls/rusty_reinforced_wall.dmi' + icon_state = "rusty_reinforced_wall-0" + base_icon_state = "rusty_reinforced_wall" + smoothing_flags = SMOOTH_BITMASK hardness = 15 /turf/closed/wall/r_wall/rust/rust_heretic_act() @@ -74,7 +83,9 @@ name = "clockwork wall" desc = "A huge chunk of bronze, decorated like gears and cogs." icon = 'icons/turf/walls/clockwork_wall.dmi' - icon_state = "clockwork_wall" + icon_state = "clockwork_wall-0" + base_icon_state = "clockwork_wall" + smoothing_flags = SMOOTH_BITMASK sheet_type = /obj/item/stack/tile/bronze sheet_amount = 2 girder_type = /obj/structure/girder/bronze diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index 0c48b1a5379..f1567fb2912 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -2,17 +2,20 @@ name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." icon = 'icons/turf/walls/reinforced_wall.dmi' - icon_state = "r_wall" + icon_state = "reinforced_wall-0" + base_icon_state = "reinforced_wall" opacity = TRUE density = TRUE - - var/d_state = INTACT + smoothing_flags = SMOOTH_BITMASK hardness = 10 sheet_type = /obj/item/stack/sheet/plasteel sheet_amount = 1 girder_type = /obj/structure/girder/reinforced explosion_block = 2 rad_insulation = RAD_HEAVY_INSULATION + ///Dismantled state, related to deconstruction. + var/d_state = INTACT + /turf/closed/wall/r_wall/deconstruction_hints(mob/user) switch(d_state) @@ -197,9 +200,8 @@ . = ..() if(d_state != INTACT) smoothing_flags = NONE - clear_smooth_overlays() else - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK QUEUE_SMOOTH_NEIGHBORS(src) QUEUE_SMOOTH(src) @@ -207,7 +209,7 @@ if(d_state != INTACT) icon_state = "r_wall-[d_state]" else - icon_state = "r_wall" + icon_state = "[base_icon_state]-[smoothing_junction]" /turf/closed/wall/r_wall/wall_singularity_pull(current_size) if(current_size >= STAGE_FIVE) @@ -234,10 +236,11 @@ name = "hull" desc = "The armored hull of an ominous looking ship." icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle" + icon_state = "plastitanium_wall-0" + base_icon_state = "plastitanium_wall" explosion_block = 20 sheet_type = /obj/item/stack/sheet/mineral/plastitanium - smoothing_flags = SMOOTH_CORNERS | SMOOTH_DIAGONAL + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS) canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) @@ -245,8 +248,10 @@ return FALSE /turf/closed/wall/r_wall/syndicate/nodiagonal - smoothing_flags = SMOOTH_CORNERS + icon = 'icons/turf/walls/plastitanium_wall.dmi' icon_state = "map-shuttle_nd" + base_icon_state = "plastitanium_wall" + smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/r_wall/syndicate/nosmooth icon = 'icons/turf/shuttle.dmi' @@ -255,6 +260,5 @@ /turf/closed/wall/r_wall/syndicate/overspace icon_state = "map-overspace" - fixed_underlay = list("space"=1) - - + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + fixed_underlay = list("space" = TRUE) diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index 736b6fb2bb8..12af8b80852 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -4,7 +4,8 @@ name = "wall" desc = "A huge chunk of metal used to separate rooms." icon = 'icons/turf/walls/wall.dmi' - icon_state = "wall" + icon_state = "wall-0" + base_icon_state = "wall" explosion_block = 1 thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT @@ -14,7 +15,7 @@ flags_ricochet = RICOCHET_HARD - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) canSmoothWith = list(SMOOTH_GROUP_WALLS) @@ -27,16 +28,30 @@ var/list/dent_decals + /turf/closed/wall/Initialize(mapload) . = ..() if(is_station_level(z)) GLOB.station_turfs += src + if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS && fixed_underlay) //Set underlays for the diagonal walls. + var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) + if(fixed_underlay["space"]) + underlay_appearance.icon = 'icons/turf/space.dmi' + underlay_appearance.icon_state = SPACE_ICON_STATE + underlay_appearance.plane = PLANE_SPACE + else + underlay_appearance.icon = fixed_underlay["icon"] + underlay_appearance.icon_state = fixed_underlay["icon_state"] + fixed_underlay = string_assoc_list(fixed_underlay) + underlays += underlay_appearance + /turf/closed/wall/Destroy() if(is_station_level(z)) GLOB.station_turfs -= src return ..() + /turf/closed/wall/examine(mob/user) . += ..() . += deconstruction_hints(user) diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm index 7775da838b7..453a329c860 100644 --- a/code/game/turfs/open/chasm.dm +++ b/code/game/turfs/open/chasm.dm @@ -4,8 +4,9 @@ desc = "Watch your step." baseturfs = /turf/open/chasm icon = 'icons/turf/floors/chasms.dmi' - icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon_state = "chasms-255" + base_icon_state = "chasms" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_TURF_CHASM) canSmoothWith = list(SMOOTH_GROUP_TURF_CHASM) density = TRUE //This will prevent hostile mobs from pathing into chasms, while the canpass override will still let it function like an open turf @@ -94,6 +95,8 @@ // Chasms for Ice moon, with planetary atmos and glow /turf/open/chasm/icemoon icon = 'icons/turf/floors/icechasms.dmi' + icon_state = "icechasms-255" + base_icon_state = "icechasms" initial_gas_mix = ICEMOON_DEFAULT_ATMOS planetary_atmos = TRUE baseturfs = /turf/open/chasm/icemoon @@ -104,6 +107,8 @@ // Chasms for the jungle, with planetary atmos and a different icon /turf/open/chasm/jungle icon = 'icons/turf/floors/junglechasm.dmi' + icon_state = "junglechasm-255" + base_icon_state = "junglechasm" initial_gas_mix = OPENTURF_LOW_PRESSURE planetary_atmos = TRUE baseturfs = /turf/open/chasm/jungle diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index dc325c53f3d..e8e4ebdd954 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -30,10 +30,11 @@ /turf/open/floor/Initialize(mapload) if (!broken_states) - broken_states = typelist("broken_states", list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")) + broken_states = string_list(list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")) else - broken_states = typelist("broken_states", broken_states) - burnt_states = typelist("burnt_states", burnt_states) + broken_states = string_list(broken_states) + if(burnt_states) + burnt_states = string_list(burnt_states) if(!broken && broken_states && (icon_state in broken_states)) broken = TRUE if(!burnt && burnt_states && (icon_state in burnt_states)) @@ -52,7 +53,7 @@ "snow","snow_dug","ice", "snow0","snow1","snow2","snow3","snow4", "snow5","snow6","snow7","snow8","snow9","snow10","snow11","snow12", - "oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "carpetsymbol", "carpetstar", + "oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "carpetcorner", "carpetside", "carpet", "ironsand1", "ironsand2", "ironsand3", "ironsand4", "ironsand5", "ironsand6", "ironsand7", "ironsand8", "ironsand9", "ironsand10", "ironsand11", "ironsand12", "ironsand13", "ironsand14", "ironsand15") @@ -139,7 +140,7 @@ /turf/open/floor/burn_tile() if(broken || burnt) return - if(burnt_states.len) + if(LAZYLEN(burnt_states)) icon_state = pick(burnt_states) else icon_state = pick(broken_states) diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index 71e60586287..9484be34503 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -179,10 +179,11 @@ name = "carpet" desc = "Soft velvet carpeting. Feels good between your toes." icon = 'icons/turf/floors/carpet.dmi' - icon_state = "carpet" + icon_state = "carpet-255" + base_icon_state = "carpet" floor_tile = /obj/item/stack/tile/carpet broken_states = list("damaged") - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET) canSmoothWith = list(SMOOTH_GROUP_CARPET) flags_1 = NONE @@ -206,63 +207,85 @@ if(!.) return if(!broken && !burnt) - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) else make_plating() - if(smoothing_flags) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH_NEIGHBORS(src) +///Carpet variant for mapping aid, functionally the same as parent after smoothing. +/turf/open/floor/carpet/lone + icon_state = "carpet-0" + /turf/open/floor/carpet/black icon = 'icons/turf/floors/carpet_black.dmi' + icon_state = "carpet_black-255" + base_icon_state = "carpet_black" floor_tile = /obj/item/stack/tile/carpet/black smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_BLACK) canSmoothWith = list(SMOOTH_GROUP_CARPET_BLACK) /turf/open/floor/carpet/blue icon = 'icons/turf/floors/carpet_blue.dmi' + icon_state = "carpet_blue-255" + base_icon_state = "carpet_blue" floor_tile = /obj/item/stack/tile/carpet/blue smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_BLUE) canSmoothWith = list(SMOOTH_GROUP_CARPET_BLUE) /turf/open/floor/carpet/cyan icon = 'icons/turf/floors/carpet_cyan.dmi' + icon_state = "carpet_cyan-255" + base_icon_state = "carpet_cyan" floor_tile = /obj/item/stack/tile/carpet/cyan smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_CYAN) canSmoothWith = list(SMOOTH_GROUP_CARPET_CYAN) /turf/open/floor/carpet/green icon = 'icons/turf/floors/carpet_green.dmi' + icon_state = "carpet_green-255" + base_icon_state = "carpet_green" floor_tile = /obj/item/stack/tile/carpet/green smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_GREEN) canSmoothWith = list(SMOOTH_GROUP_CARPET_GREEN) /turf/open/floor/carpet/orange icon = 'icons/turf/floors/carpet_orange.dmi' + icon_state = "carpet_orange-255" + base_icon_state = "carpet_orange" floor_tile = /obj/item/stack/tile/carpet/orange smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_ORANGE) canSmoothWith = list(SMOOTH_GROUP_CARPET_ORANGE) /turf/open/floor/carpet/purple icon = 'icons/turf/floors/carpet_purple.dmi' + icon_state = "carpet_purple-255" + base_icon_state = "carpet_purple" floor_tile = /obj/item/stack/tile/carpet/purple smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_PURPLE) canSmoothWith = list(SMOOTH_GROUP_CARPET_PURPLE) /turf/open/floor/carpet/red icon = 'icons/turf/floors/carpet_red.dmi' + icon_state = "carpet_red-255" + base_icon_state = "carpet_red" floor_tile = /obj/item/stack/tile/carpet/red smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_RED) canSmoothWith = list(SMOOTH_GROUP_CARPET_RED) /turf/open/floor/carpet/royalblack icon = 'icons/turf/floors/carpet_royalblack.dmi' + icon_state = "carpet_royalblack-255" + base_icon_state = "carpet_royalblack" floor_tile = /obj/item/stack/tile/carpet/royalblack smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_ROYAL_BLACK) canSmoothWith = list(SMOOTH_GROUP_CARPET_ROYAL_BLACK) /turf/open/floor/carpet/royalblue icon = 'icons/turf/floors/carpet_royalblue.dmi' + icon_state = "carpet_royalblue-255" + base_icon_state = "carpet_royalblue" floor_tile = /obj/item/stack/tile/carpet/royalblue smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_ROYAL_BLUE) canSmoothWith = list(SMOOTH_GROUP_CARPET_ROYAL_BLUE) @@ -321,11 +344,12 @@ /turf/open/floor/fakepit desc = "A clever illusion designed to look like a bottomless pit." - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon = 'icons/turf/floors/chasms.dmi' + icon_state = "chasms-0" + base_icon_state = "chasms" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_TURF_CHASM) canSmoothWith = list(SMOOTH_GROUP_TURF_CHASM) - icon = 'icons/turf/floors/Chasms.dmi' - icon_state = "smooth" tiled_dirt = FALSE /turf/open/floor/fakepit/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir) diff --git a/code/game/turfs/open/floor/plating/misc_plating.dm b/code/game/turfs/open/floor/plating/misc_plating.dm index 475685e2a85..86fdde73219 100644 --- a/code/game/turfs/open/floor/plating/misc_plating.dm +++ b/code/game/turfs/open/floor/plating/misc_plating.dm @@ -40,8 +40,8 @@ gender = PLURAL name = "ash" icon_state = "ash" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER - var/smooth_icon = 'icons/turf/floors/ash.dmi' + base_icon_state = "ash" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER desc = "The ground is covered in volcanic ash." baseturfs = /turf/open/floor/plating/ashplanet/wateryrock //I assume this will be a chasm eventually, once this becomes an actual surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS @@ -52,14 +52,18 @@ clawfootstep = FOOTSTEP_SAND heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE + var/smooth_icon = 'icons/turf/floors/ash.dmi' + /turf/open/floor/plating/ashplanet/Initialize() - if(smoothing_flags) + . = ..() + if(smoothing_flags & SMOOTH_BITMASK) var/matrix/M = new M.Translate(-4, -4) transform = M icon = smooth_icon - . = ..() + icon_state = "[icon_state]-[smoothing_junction]" + /turf/open/floor/plating/ashplanet/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -80,6 +84,7 @@ gender = PLURAL name = "rocky ground" icon_state = "rockyash" + base_icon_state = "rocky_ash" smooth_icon = 'icons/turf/floors/rocky_ash.dmi' layer = MID_TURF_LAYER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_ASH_ROCKY) @@ -182,7 +187,7 @@ name = "ice sheet" desc = "A sheet of solid ice. Looks slippery." icon = 'icons/turf/floors/ice_turf.dmi' - icon_state = "unsmooth" + icon_state = "ice_turf-0" initial_gas_mix = FROZEN_ATMOS temperature = 180 planetary_atmos = TRUE @@ -203,8 +208,9 @@ return /turf/open/floor/plating/ice/smooth - icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon_state = "ice_turf-255" + base_icon_state = "ice_turf" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_ICE) canSmoothWith = list(SMOOTH_GROUP_FLOOR_ICE) @@ -245,12 +251,13 @@ initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/open/floor/plating/snowed/smoothed - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon = 'icons/turf/floors/snow_turf.dmi' + icon_state = "snow_turf-0" + base_icon_state = "snow_turf" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_SNOWED) canSmoothWith = list(SMOOTH_GROUP_FLOOR_SNOWED) planetary_atmos = TRUE - icon = 'icons/turf/floors/snow_turf.dmi' - icon_state = "smooth" /turf/open/floor/plating/snowed/colder temperature = 140 @@ -265,14 +272,15 @@ name = "grass" desc = "A patch of grass." icon_state = "grass0" + base_icon_state = "grass" bullet_bounce_sound = null footstep = FOOTSTEP_GRASS barefootstep = FOOTSTEP_GRASS clawfootstep = FOOTSTEP_GRASS heavyfootstep = FOOTSTEP_GENERIC_HEAVY - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN,SMOOTH_GROUP_FLOOR_GRASS) - canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS,SMOOTH_GROUP_FLOOR_GRASS) + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_GRASS) + canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_FLOOR_GRASS) layer = HIGH_TURF_LAYER var/smooth_icon = 'icons/turf/floors/grass.dmi' diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm index e23f0979f47..c9b0bcfb855 100644 --- a/code/game/turfs/open/floor/plating/planet.dm +++ b/code/game/turfs/open/floor/plating/planet.dm @@ -46,6 +46,7 @@ planetary_atmos = TRUE desc = "Greener on the other side." icon_state = "junglegrass" + base_icon_state = "junglegrass" smooth_icon = 'icons/turf/floors/junglegrass.dmi' /turf/closed/mineral/random/jungle diff --git a/code/game/turfs/open/transparent.dm b/code/game/turfs/open/transparent.dm index d49bba40a8e..28936789847 100644 --- a/code/game/turfs/open/transparent.dm +++ b/code/game/turfs/open/transparent.dm @@ -55,8 +55,9 @@ name = "Glass floor" desc = "Dont jump on it, or do, I'm not your mom." icon = 'icons/turf/floors/glass.dmi' - icon_state = "floor_glass" - smoothing_flags = SMOOTH_CORNERS + icon_state = "glass-0" + base_icon_state = "glass" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS) canSmoothWith = list(SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS) footstep = FOOTSTEP_PLATING @@ -72,3 +73,5 @@ name = "Reinforced glass floor" desc = "Do jump on it, it can take it." icon = 'icons/turf/floors/reinf_glass.dmi' + icon_state = "reinf_glass-0" + base_icon_state = "reinf_glass" diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 3056729477d..d72618d9522 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -89,7 +89,7 @@ GLOBAL_LIST_EMPTY(station_turfs) if(canSmoothWith[length(canSmoothWith)] > MAX_S_TURF) //If the last element is higher than the maximum turf-only value, then it must scan turf contents for smoothing targets. smoothing_flags |= SMOOTH_OBJ SET_BITFLAG_LIST(canSmoothWith) - if (smoothing_flags) + if (smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) visibilityChanged() diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 4d600d40cc9..d2994ab9c91 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -812,12 +812,14 @@ Congratulations! You are now trained for invasive xenobiology research!"} name = "alien table" desc = "Advanced flat surface technology at work!" icon = 'icons/obj/smooth_structures/alien_table.dmi' - icon_state = "alien_table" + icon_state = "alien_table-0" + base_icon_state = "alien_table" buildstack = /obj/item/stack/sheet/mineral/abductor framestack = /obj/item/stack/sheet/mineral/abductor buildstackamount = 1 framestackamount = 1 - canSmoothWith = null + smoothing_groups = list(SMOOTH_GROUP_ABDUCTOR_TABLES) + canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_TABLES) frame = /obj/structure/table_frame/abductor /obj/structure/table/optable/abductor diff --git a/code/modules/awaymissions/away_props.dm b/code/modules/awaymissions/away_props.dm index b1d54686620..795798774e2 100644 --- a/code/modules/awaymissions/away_props.dm +++ b/code/modules/awaymissions/away_props.dm @@ -57,7 +57,7 @@ /obj/structure/pitgrate name = "pit grate" icon = 'icons/obj/smooth_structures/lattice.dmi' - icon_state = "lattice" + icon_state = "lattice-255" plane = FLOOR_PLANE anchored = TRUE obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cac1daeb8f2..7599000a31d 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -1108,7 +1108,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( name = "chasm" /obj/effect/hallucination/danger/chasm/show_icon() - image = image('icons/turf/floors/Chasms.dmi',src,"smooth",TURF_LAYER) + var/turf/target_loc = get_turf(target) + image = image('icons/turf/floors/chasms.dmi', src, "chasms-[target_loc.smoothing_junction]", TURF_LAYER) if(target.client) target.client.images += image diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index dd57d6d85a1..467292c7874 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -109,7 +109,7 @@ icon = 'icons/turf/floors/carpet.dmi' icon_state = "carpet" floor_tile = /obj/item/stack/tile/carpet - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK canSmoothWith = null bullet_bounce_sound = null tiled_dirt = FALSE @@ -120,7 +120,7 @@ /turf/open/floor/holofloor/carpet/update_icon() . = ..() - if(intact) + if(intact && smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) /turf/open/floor/holofloor/wood diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 86d862a52b3..740049b47f6 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -86,8 +86,9 @@ /obj/structure/window/shuttle/survival_pod name = "pod window" icon = 'icons/obj/smooth_structures/pod_window.dmi' - icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS + icon_state = "pod_window-0" + base_icon_state = "pod_window" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_SURVIVAL_TIANIUM_POD) canSmoothWith = list(SMOOTH_GROUP_SURVIVAL_TIANIUM_POD) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index a58103d97ac..041821d1088 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -93,7 +93,7 @@ Difficulty: Hard /datum/action/innate/megafauna_attack/hallucination_surround name = "Surround Target" icon_icon = 'icons/turf/walls/wall.dmi' - button_icon_state = "wall" + button_icon_state = "wall-0" chosen_message = "You are now surrounding the target you click on with hallucinations." chosen_attack_num = 3 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 959c6de311a..d6d819edb2d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -516,18 +516,23 @@ Difficulty: Hard /obj/effect/temp_visual/hierophant/wall //smoothing and pooling were not friends, but pooling is dead. name = "vortex wall" icon = 'icons/turf/walls/hierophant_wall_temp.dmi' - icon_state = "wall" + icon_state = "hierophant_wall_temp-0" + base_icon_state = "hierophant_wall_temp" + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_HIERO_WALL) + canSmoothWith = list(SMOOTH_GROUP_HIERO_WALL) light_range = MINIMUM_USEFUL_LIGHT_RANGE duration = 100 - smoothing_flags = SMOOTH_CORNERS /obj/effect/temp_visual/hierophant/wall/Initialize(mapload, new_caster) . = ..() - QUEUE_SMOOTH_NEIGHBORS(src) - QUEUE_SMOOTH(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) + QUEUE_SMOOTH(src) /obj/effect/temp_visual/hierophant/wall/Destroy() - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) return ..() /obj/effect/temp_visual/hierophant/wall/CanAllowThrough(atom/movable/mover, turf/target) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index c0c9e3018d8..d05319814e9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -285,4 +285,5 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa name = "swarmer catwalk" desc = "A catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain." icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi' - icon_state = "swarmer_catwalk" + icon_state = "swarmer_catwalk-0" + base_icon_state = "swarmer_catwalk" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 22a934f11e0..07520712f57 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -73,7 +73,7 @@ Difficulty: Hard /datum/action/innate/megafauna_attack/disorienting_scream name = "Disorienting Scream" icon_icon = 'icons/turf/walls/wall.dmi' - button_icon_state = "wall" + button_icon_state = "wall-0" chosen_message = "You are now screeching, disorienting targets around you." chosen_attack_num = 3 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 36ca8608bc9..75eb7a945b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -302,9 +302,12 @@ While using this makes the system rely on OnFire, it still gives options for tim /obj/effect/temp_visual/elite_tumor_wall name = "magic wall" icon = 'icons/turf/walls/hierophant_wall_temp.dmi' - icon_state = "wall" + icon_state = "hierophant_wall_temp-0" + base_icon_state = "hierophant_wall_temp" + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_HIERO_WALL) + canSmoothWith = list(SMOOTH_GROUP_HIERO_WALL) duration = 50 - smoothing_flags = SMOOTH_CORNERS layer = BELOW_MOB_LAYER color = rgb(255,0,0) light_range = MINIMUM_USEFUL_LIGHT_RANGE @@ -314,11 +317,13 @@ While using this makes the system rely on OnFire, it still gives options for tim /obj/effect/temp_visual/elite_tumor_wall/Initialize(mapload, new_caster) . = ..() - QUEUE_SMOOTH_NEIGHBORS(src) - QUEUE_SMOOTH(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) + QUEUE_SMOOTH(src) /obj/effect/temp_visual/elite_tumor_wall/Destroy() - QUEUE_SMOOTH_NEIGHBORS(src) + if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) + QUEUE_SMOOTH_NEIGHBORS(src) activator = null ourelite = null return ..() diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm index 5b64d2ba115..74080b3644f 100644 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm @@ -52,6 +52,8 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/wasteland baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland smooth_icon = 'icons/turf/walls/rock_wall.dmi' + base_icon_state = "rock_wall" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER /turf/closed/mineral/strong/wasteland/drop_ores() if(prob(10)) diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index 9c950148d24..2f50ba92d68 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -12,7 +12,7 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate setDir(angle2dir(rotation+dir2angle(dir))) //resmooth if need be. - if(smoothing_flags && (params & ROTATE_SMOOTH)) + if(params & ROTATE_SMOOTH && smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH(src) //rotate the pixel offsets too. @@ -30,7 +30,7 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate /atom/movable/shuttleRotate(rotation, params) . = ..() //rotate the physical bounds and offsets for multitile atoms too. Owerride base "rotate the pixel offsets" for multitile atoms. - //Owerride non zero bound_x, bound_y, pixel_x, pixel_y to zero. + //Owerride non zero bound_x, bound_y, pixel_x, pixel_y to zero. //Dont take in account starting bound_x, bound_y, pixel_x, pixel_y. //So it can unintentionally shift physical bounds of things that starts with non zero bound_x, bound_y. if(((bound_height != world.icon_size) || (bound_width != world.icon_size)) && (bound_x==0) && (bound_y==0)) //Dont shift things that have non zero bound_x and bound_y, or it move somewhere. Now it BSA and Gateway. diff --git a/icons/effects/dirt.dmi b/icons/effects/dirt.dmi index cd673a949de..3d63c60e90d 100644 Binary files a/icons/effects/dirt.dmi and b/icons/effects/dirt.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 706cad3f5c8..c32c136ef56 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index c50351eef37..3029249e1c1 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/obj/smooth_structures/alien/nest.dmi b/icons/obj/smooth_structures/alien/nest.dmi index 4a1c757bc64..f018efbb3df 100644 Binary files a/icons/obj/smooth_structures/alien/nest.dmi and b/icons/obj/smooth_structures/alien/nest.dmi differ diff --git a/icons/obj/smooth_structures/alien/resin_membrane.dmi b/icons/obj/smooth_structures/alien/resin_membrane.dmi index 517838a653a..caadcf8be7c 100644 Binary files a/icons/obj/smooth_structures/alien/resin_membrane.dmi and b/icons/obj/smooth_structures/alien/resin_membrane.dmi differ diff --git a/icons/obj/smooth_structures/alien/resin_wall.dmi b/icons/obj/smooth_structures/alien/resin_wall.dmi index eba082a8303..af34c6583a1 100644 Binary files a/icons/obj/smooth_structures/alien/resin_wall.dmi and b/icons/obj/smooth_structures/alien/resin_wall.dmi differ diff --git a/icons/obj/smooth_structures/alien/weednode.dmi b/icons/obj/smooth_structures/alien/weednode.dmi index 8d963d7c83e..3b2f6edbdd4 100644 Binary files a/icons/obj/smooth_structures/alien/weednode.dmi and b/icons/obj/smooth_structures/alien/weednode.dmi differ diff --git a/icons/obj/smooth_structures/alien/weeds1.dmi b/icons/obj/smooth_structures/alien/weeds1.dmi index b794b6853fc..0d9b50f4deb 100644 Binary files a/icons/obj/smooth_structures/alien/weeds1.dmi and b/icons/obj/smooth_structures/alien/weeds1.dmi differ diff --git a/icons/obj/smooth_structures/alien/weeds2.dmi b/icons/obj/smooth_structures/alien/weeds2.dmi index 8917bade585..318eb4694b8 100644 Binary files a/icons/obj/smooth_structures/alien/weeds2.dmi and b/icons/obj/smooth_structures/alien/weeds2.dmi differ diff --git a/icons/obj/smooth_structures/alien/weeds3.dmi b/icons/obj/smooth_structures/alien/weeds3.dmi index c7f0aa0ca97..d57d967ba72 100644 Binary files a/icons/obj/smooth_structures/alien/weeds3.dmi and b/icons/obj/smooth_structures/alien/weeds3.dmi differ diff --git a/icons/obj/smooth_structures/alien_table.dmi b/icons/obj/smooth_structures/alien_table.dmi index 1d60bcc82f6..d924012e975 100644 Binary files a/icons/obj/smooth_structures/alien_table.dmi and b/icons/obj/smooth_structures/alien_table.dmi differ diff --git a/icons/obj/smooth_structures/brass_table.dmi b/icons/obj/smooth_structures/brass_table.dmi index f3cc8bb9ee5..b54af9be65c 100644 Binary files a/icons/obj/smooth_structures/brass_table.dmi and b/icons/obj/smooth_structures/brass_table.dmi differ diff --git a/icons/obj/smooth_structures/catwalk.dmi b/icons/obj/smooth_structures/catwalk.dmi index 4b71fb50731..2fcb859cc7c 100644 Binary files a/icons/obj/smooth_structures/catwalk.dmi and b/icons/obj/smooth_structures/catwalk.dmi differ diff --git a/icons/obj/smooth_structures/clockwork_window.dmi b/icons/obj/smooth_structures/clockwork_window.dmi index 10d5bcf631c..674a16d43e0 100644 Binary files a/icons/obj/smooth_structures/clockwork_window.dmi and b/icons/obj/smooth_structures/clockwork_window.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table.dmi b/icons/obj/smooth_structures/fancy_table.dmi index a57b165f4ac..7bb52fd6819 100644 Binary files a/icons/obj/smooth_structures/fancy_table.dmi and b/icons/obj/smooth_structures/fancy_table.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_black.dmi b/icons/obj/smooth_structures/fancy_table_black.dmi index d4570e8a7c1..38f75a31708 100644 Binary files a/icons/obj/smooth_structures/fancy_table_black.dmi and b/icons/obj/smooth_structures/fancy_table_black.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_blue.dmi b/icons/obj/smooth_structures/fancy_table_blue.dmi index 07e13e99e64..60b42760a35 100644 Binary files a/icons/obj/smooth_structures/fancy_table_blue.dmi and b/icons/obj/smooth_structures/fancy_table_blue.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_cyan.dmi b/icons/obj/smooth_structures/fancy_table_cyan.dmi index 4f1a90e33b2..bf677d5cd9d 100644 Binary files a/icons/obj/smooth_structures/fancy_table_cyan.dmi and b/icons/obj/smooth_structures/fancy_table_cyan.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_green.dmi b/icons/obj/smooth_structures/fancy_table_green.dmi index ea7f8daa99f..c4989097936 100644 Binary files a/icons/obj/smooth_structures/fancy_table_green.dmi and b/icons/obj/smooth_structures/fancy_table_green.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_orange.dmi b/icons/obj/smooth_structures/fancy_table_orange.dmi index fe0375ddbb8..ba48e42f23a 100644 Binary files a/icons/obj/smooth_structures/fancy_table_orange.dmi and b/icons/obj/smooth_structures/fancy_table_orange.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_purple.dmi b/icons/obj/smooth_structures/fancy_table_purple.dmi index c404a9eb5f4..2de50c610ca 100644 Binary files a/icons/obj/smooth_structures/fancy_table_purple.dmi and b/icons/obj/smooth_structures/fancy_table_purple.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_red.dmi b/icons/obj/smooth_structures/fancy_table_red.dmi index 8bca0ca8c94..dae7f3a0365 100644 Binary files a/icons/obj/smooth_structures/fancy_table_red.dmi and b/icons/obj/smooth_structures/fancy_table_red.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_royalblack.dmi b/icons/obj/smooth_structures/fancy_table_royalblack.dmi index 064b7c1945e..645d05eeecf 100644 Binary files a/icons/obj/smooth_structures/fancy_table_royalblack.dmi and b/icons/obj/smooth_structures/fancy_table_royalblack.dmi differ diff --git a/icons/obj/smooth_structures/fancy_table_royalblue.dmi b/icons/obj/smooth_structures/fancy_table_royalblue.dmi index 9d0eba7265e..af4a19754f6 100644 Binary files a/icons/obj/smooth_structures/fancy_table_royalblue.dmi and b/icons/obj/smooth_structures/fancy_table_royalblue.dmi differ diff --git a/icons/obj/smooth_structures/glass_table.dmi b/icons/obj/smooth_structures/glass_table.dmi index 5f886d74639..46ba6453ba2 100644 Binary files a/icons/obj/smooth_structures/glass_table.dmi and b/icons/obj/smooth_structures/glass_table.dmi differ diff --git a/icons/obj/smooth_structures/hedge.dmi b/icons/obj/smooth_structures/hedge.dmi index cf32ffa26d2..a2d489b577d 100644 Binary files a/icons/obj/smooth_structures/hedge.dmi and b/icons/obj/smooth_structures/hedge.dmi differ diff --git a/icons/obj/smooth_structures/lattice.dmi b/icons/obj/smooth_structures/lattice.dmi index 5adab0caf1b..fc3b316e415 100644 Binary files a/icons/obj/smooth_structures/lattice.dmi and b/icons/obj/smooth_structures/lattice.dmi differ diff --git a/icons/obj/smooth_structures/paperframes.dmi b/icons/obj/smooth_structures/paperframes.dmi index 5ac2c27dd51..9982db639cb 100644 Binary files a/icons/obj/smooth_structures/paperframes.dmi and b/icons/obj/smooth_structures/paperframes.dmi differ diff --git a/icons/obj/smooth_structures/plasma_window.dmi b/icons/obj/smooth_structures/plasma_window.dmi index 3d57d156f01..583972a24b2 100644 Binary files a/icons/obj/smooth_structures/plasma_window.dmi and b/icons/obj/smooth_structures/plasma_window.dmi differ diff --git a/icons/obj/smooth_structures/plastitanium_window.dmi b/icons/obj/smooth_structures/plastitanium_window.dmi index 82ac0306159..e5c4cf32baa 100644 Binary files a/icons/obj/smooth_structures/plastitanium_window.dmi and b/icons/obj/smooth_structures/plastitanium_window.dmi differ diff --git a/icons/obj/smooth_structures/pod_window.dmi b/icons/obj/smooth_structures/pod_window.dmi index 0fe7501225c..3c65a8d9f0b 100644 Binary files a/icons/obj/smooth_structures/pod_window.dmi and b/icons/obj/smooth_structures/pod_window.dmi differ diff --git a/icons/obj/smooth_structures/poker_table.dmi b/icons/obj/smooth_structures/poker_table.dmi index f453f7aba19..d438eb1aada 100644 Binary files a/icons/obj/smooth_structures/poker_table.dmi and b/icons/obj/smooth_structures/poker_table.dmi differ diff --git a/icons/obj/smooth_structures/reinforced_table.dmi b/icons/obj/smooth_structures/reinforced_table.dmi index 85de93594f9..44a4ce35a69 100644 Binary files a/icons/obj/smooth_structures/reinforced_table.dmi and b/icons/obj/smooth_structures/reinforced_table.dmi differ diff --git a/icons/obj/smooth_structures/reinforced_window.dmi b/icons/obj/smooth_structures/reinforced_window.dmi index a1f60f0677a..a66b648786d 100644 Binary files a/icons/obj/smooth_structures/reinforced_window.dmi and b/icons/obj/smooth_structures/reinforced_window.dmi differ diff --git a/icons/obj/smooth_structures/rice_window.dmi b/icons/obj/smooth_structures/rice_window.dmi index f5e7a6dd57a..309e106fb31 100644 Binary files a/icons/obj/smooth_structures/rice_window.dmi and b/icons/obj/smooth_structures/rice_window.dmi differ diff --git a/icons/obj/smooth_structures/rplasma_window.dmi b/icons/obj/smooth_structures/rplasma_window.dmi index c64f42c7f5a..3211978d17a 100644 Binary files a/icons/obj/smooth_structures/rplasma_window.dmi and b/icons/obj/smooth_structures/rplasma_window.dmi differ diff --git a/icons/obj/smooth_structures/sandbags.dmi b/icons/obj/smooth_structures/sandbags.dmi index 8ac099555a8..20fb25fd91b 100644 Binary files a/icons/obj/smooth_structures/sandbags.dmi and b/icons/obj/smooth_structures/sandbags.dmi differ diff --git a/icons/obj/smooth_structures/shuttle_window.dmi b/icons/obj/smooth_structures/shuttle_window.dmi index cb07225a762..b1b6d9e47d1 100644 Binary files a/icons/obj/smooth_structures/shuttle_window.dmi and b/icons/obj/smooth_structures/shuttle_window.dmi differ diff --git a/icons/obj/smooth_structures/swarmer_catwalk.dmi b/icons/obj/smooth_structures/swarmer_catwalk.dmi index b247132eacb..b69c67ea8de 100644 Binary files a/icons/obj/smooth_structures/swarmer_catwalk.dmi and b/icons/obj/smooth_structures/swarmer_catwalk.dmi differ diff --git a/icons/obj/smooth_structures/table.dmi b/icons/obj/smooth_structures/table.dmi index 0b5fa4636bf..c54555abf00 100644 Binary files a/icons/obj/smooth_structures/table.dmi and b/icons/obj/smooth_structures/table.dmi differ diff --git a/icons/obj/smooth_structures/table_greyscale.dmi b/icons/obj/smooth_structures/table_greyscale.dmi index 1acbea2de9b..3a632ad4b15 100644 Binary files a/icons/obj/smooth_structures/table_greyscale.dmi and b/icons/obj/smooth_structures/table_greyscale.dmi differ diff --git a/icons/obj/smooth_structures/tinted_window.dmi b/icons/obj/smooth_structures/tinted_window.dmi index 85e27e09a67..531255feb2d 100644 Binary files a/icons/obj/smooth_structures/tinted_window.dmi and b/icons/obj/smooth_structures/tinted_window.dmi differ diff --git a/icons/obj/smooth_structures/window.dmi b/icons/obj/smooth_structures/window.dmi index b680e44fa90..d45bfcea7ea 100644 Binary files a/icons/obj/smooth_structures/window.dmi and b/icons/obj/smooth_structures/window.dmi differ diff --git a/icons/obj/smooth_structures/wood_table.dmi b/icons/obj/smooth_structures/wood_table.dmi index 181114a7c84..f35cbb90a37 100644 Binary files a/icons/obj/smooth_structures/wood_table.dmi and b/icons/obj/smooth_structures/wood_table.dmi differ diff --git a/icons/turf/floors/ash.dmi b/icons/turf/floors/ash.dmi index 718cd120194..4749fc2d330 100644 Binary files a/icons/turf/floors/ash.dmi and b/icons/turf/floors/ash.dmi differ diff --git a/icons/turf/floors/carpet.dmi b/icons/turf/floors/carpet.dmi index 52208611a47..0d71cfbd1cc 100644 Binary files a/icons/turf/floors/carpet.dmi and b/icons/turf/floors/carpet.dmi differ diff --git a/icons/turf/floors/carpet_black.dmi b/icons/turf/floors/carpet_black.dmi index d8cbc1c4534..cb4dff53543 100644 Binary files a/icons/turf/floors/carpet_black.dmi and b/icons/turf/floors/carpet_black.dmi differ diff --git a/icons/turf/floors/carpet_blue.dmi b/icons/turf/floors/carpet_blue.dmi index f797be9745a..ea04cffc6ba 100644 Binary files a/icons/turf/floors/carpet_blue.dmi and b/icons/turf/floors/carpet_blue.dmi differ diff --git a/icons/turf/floors/carpet_cyan.dmi b/icons/turf/floors/carpet_cyan.dmi index feca351ca92..1dc9400f78b 100644 Binary files a/icons/turf/floors/carpet_cyan.dmi and b/icons/turf/floors/carpet_cyan.dmi differ diff --git a/icons/turf/floors/carpet_green.dmi b/icons/turf/floors/carpet_green.dmi index fdd1f071f70..182b1af39c4 100644 Binary files a/icons/turf/floors/carpet_green.dmi and b/icons/turf/floors/carpet_green.dmi differ diff --git a/icons/turf/floors/carpet_orange.dmi b/icons/turf/floors/carpet_orange.dmi index ddf239b63b2..d1a20dfac5c 100644 Binary files a/icons/turf/floors/carpet_orange.dmi and b/icons/turf/floors/carpet_orange.dmi differ diff --git a/icons/turf/floors/carpet_purple.dmi b/icons/turf/floors/carpet_purple.dmi index c1f40ec7fa8..bfe03c195a9 100644 Binary files a/icons/turf/floors/carpet_purple.dmi and b/icons/turf/floors/carpet_purple.dmi differ diff --git a/icons/turf/floors/carpet_red.dmi b/icons/turf/floors/carpet_red.dmi index 926655688ed..934d541e8fd 100644 Binary files a/icons/turf/floors/carpet_red.dmi and b/icons/turf/floors/carpet_red.dmi differ diff --git a/icons/turf/floors/carpet_royalblack.dmi b/icons/turf/floors/carpet_royalblack.dmi index bc5cef1cf0e..323f1806f36 100644 Binary files a/icons/turf/floors/carpet_royalblack.dmi and b/icons/turf/floors/carpet_royalblack.dmi differ diff --git a/icons/turf/floors/carpet_royalblue.dmi b/icons/turf/floors/carpet_royalblue.dmi index 841e49e957b..95f1b6400de 100644 Binary files a/icons/turf/floors/carpet_royalblue.dmi and b/icons/turf/floors/carpet_royalblue.dmi differ diff --git a/icons/turf/floors/chasms.dmi b/icons/turf/floors/chasms.dmi index cc4feb2e032..b725e54d134 100644 Binary files a/icons/turf/floors/chasms.dmi and b/icons/turf/floors/chasms.dmi differ diff --git a/icons/turf/floors/glass.dmi b/icons/turf/floors/glass.dmi index adf6f57aaa3..ad833bddcbd 100644 Binary files a/icons/turf/floors/glass.dmi and b/icons/turf/floors/glass.dmi differ diff --git a/icons/turf/floors/grass.dmi b/icons/turf/floors/grass.dmi index 994c4667e6f..f73259b618a 100644 Binary files a/icons/turf/floors/grass.dmi and b/icons/turf/floors/grass.dmi differ diff --git a/icons/turf/floors/ice_turf.dmi b/icons/turf/floors/ice_turf.dmi index 8751a372162..46d37cf2681 100644 Binary files a/icons/turf/floors/ice_turf.dmi and b/icons/turf/floors/ice_turf.dmi differ diff --git a/icons/turf/floors/icechasms.dmi b/icons/turf/floors/icechasms.dmi index 97dfc0a2da6..998981326aa 100644 Binary files a/icons/turf/floors/icechasms.dmi and b/icons/turf/floors/icechasms.dmi differ diff --git a/icons/turf/floors/junglechasm.dmi b/icons/turf/floors/junglechasm.dmi index 699a3b667cd..141f5d7485b 100644 Binary files a/icons/turf/floors/junglechasm.dmi and b/icons/turf/floors/junglechasm.dmi differ diff --git a/icons/turf/floors/junglegrass.dmi b/icons/turf/floors/junglegrass.dmi index e7d93403e1c..281eccaa287 100644 Binary files a/icons/turf/floors/junglegrass.dmi and b/icons/turf/floors/junglegrass.dmi differ diff --git a/icons/turf/floors/reinf_glass.dmi b/icons/turf/floors/reinf_glass.dmi index dda99cd07f8..5abe9815eb4 100644 Binary files a/icons/turf/floors/reinf_glass.dmi and b/icons/turf/floors/reinf_glass.dmi differ diff --git a/icons/turf/floors/rocky_ash.dmi b/icons/turf/floors/rocky_ash.dmi index 2a57edfc53a..e972b09bf9b 100644 Binary files a/icons/turf/floors/rocky_ash.dmi and b/icons/turf/floors/rocky_ash.dmi differ diff --git a/icons/turf/floors/snow_turf.dmi b/icons/turf/floors/snow_turf.dmi index e7fef38602b..8cae37308e1 100644 Binary files a/icons/turf/floors/snow_turf.dmi and b/icons/turf/floors/snow_turf.dmi differ diff --git a/icons/turf/smoothrocks.dmi b/icons/turf/smoothrocks.dmi index a65a0135248..0948aaaaa3b 100644 Binary files a/icons/turf/smoothrocks.dmi and b/icons/turf/smoothrocks.dmi differ diff --git a/icons/turf/walls/abductor_wall.dmi b/icons/turf/walls/abductor_wall.dmi index d1d8954bfb9..362d2f0228e 100644 Binary files a/icons/turf/walls/abductor_wall.dmi and b/icons/turf/walls/abductor_wall.dmi differ diff --git a/icons/turf/walls/bananium_wall.dmi b/icons/turf/walls/bananium_wall.dmi index 47e249c42e5..b0827de38b3 100644 Binary files a/icons/turf/walls/bananium_wall.dmi and b/icons/turf/walls/bananium_wall.dmi differ diff --git a/icons/turf/walls/boss_wall.dmi b/icons/turf/walls/boss_wall.dmi index a197aac8ce3..e27be26fc73 100644 Binary files a/icons/turf/walls/boss_wall.dmi and b/icons/turf/walls/boss_wall.dmi differ diff --git a/icons/turf/walls/clockwork_wall.dmi b/icons/turf/walls/clockwork_wall.dmi index 8263e901d00..d6f1872d7c0 100644 Binary files a/icons/turf/walls/clockwork_wall.dmi and b/icons/turf/walls/clockwork_wall.dmi differ diff --git a/icons/turf/walls/cult_wall.dmi b/icons/turf/walls/cult_wall.dmi index 5239f7b1e06..5defb4c503c 100644 Binary files a/icons/turf/walls/cult_wall.dmi and b/icons/turf/walls/cult_wall.dmi differ diff --git a/icons/turf/walls/diamond_wall.dmi b/icons/turf/walls/diamond_wall.dmi index 0645aa2e6fd..f3be964d463 100644 Binary files a/icons/turf/walls/diamond_wall.dmi and b/icons/turf/walls/diamond_wall.dmi differ diff --git a/icons/turf/walls/gold_wall.dmi b/icons/turf/walls/gold_wall.dmi index c6ba713c649..141ff879345 100644 Binary files a/icons/turf/walls/gold_wall.dmi and b/icons/turf/walls/gold_wall.dmi differ diff --git a/icons/turf/walls/hierophant_wall_temp.dmi b/icons/turf/walls/hierophant_wall_temp.dmi index 9f0d4b8d23c..bcde8ae814a 100644 Binary files a/icons/turf/walls/hierophant_wall_temp.dmi and b/icons/turf/walls/hierophant_wall_temp.dmi differ diff --git a/icons/turf/walls/icedmetal_wall.dmi b/icons/turf/walls/icedmetal_wall.dmi index 1782b9809b6..b2aac177d8b 100644 Binary files a/icons/turf/walls/icedmetal_wall.dmi and b/icons/turf/walls/icedmetal_wall.dmi differ diff --git a/icons/turf/walls/icerock_wall.dmi b/icons/turf/walls/icerock_wall.dmi index 4e2afc67d69..bd7a7f1bc27 100644 Binary files a/icons/turf/walls/icerock_wall.dmi and b/icons/turf/walls/icerock_wall.dmi differ diff --git a/icons/turf/walls/iron_wall.dmi b/icons/turf/walls/iron_wall.dmi index 86bed015f15..f78038a7cb7 100644 Binary files a/icons/turf/walls/iron_wall.dmi and b/icons/turf/walls/iron_wall.dmi differ diff --git a/icons/turf/walls/materialwall.dmi b/icons/turf/walls/materialwall.dmi index c497f76c2ee..1027effda94 100644 Binary files a/icons/turf/walls/materialwall.dmi and b/icons/turf/walls/materialwall.dmi differ diff --git a/icons/turf/walls/mountain_wall.dmi b/icons/turf/walls/mountain_wall.dmi index 8b90de86473..46ab374e8b4 100644 Binary files a/icons/turf/walls/mountain_wall.dmi and b/icons/turf/walls/mountain_wall.dmi differ diff --git a/icons/turf/walls/plasma_wall.dmi b/icons/turf/walls/plasma_wall.dmi index 4f2080d06ac..305e78f1856 100644 Binary files a/icons/turf/walls/plasma_wall.dmi and b/icons/turf/walls/plasma_wall.dmi differ diff --git a/icons/turf/walls/plastinum_wall.dmi b/icons/turf/walls/plastinum_wall.dmi index 79468c07fb1..1bc8071c1c5 100644 Binary files a/icons/turf/walls/plastinum_wall.dmi and b/icons/turf/walls/plastinum_wall.dmi differ diff --git a/icons/turf/walls/plastitanium_wall.dmi b/icons/turf/walls/plastitanium_wall.dmi index 01dfdd1234d..e3cfc435f51 100644 Binary files a/icons/turf/walls/plastitanium_wall.dmi and b/icons/turf/walls/plastitanium_wall.dmi differ diff --git a/icons/turf/walls/reinforced_wall.dmi b/icons/turf/walls/reinforced_wall.dmi index c6f59240480..7941eb9d1a7 100644 Binary files a/icons/turf/walls/reinforced_wall.dmi and b/icons/turf/walls/reinforced_wall.dmi differ diff --git a/icons/turf/walls/riveted.dmi b/icons/turf/walls/riveted.dmi index 90d1e96297b..4d25f15b851 100644 Binary files a/icons/turf/walls/riveted.dmi and b/icons/turf/walls/riveted.dmi differ diff --git a/icons/turf/walls/rock_wall.dmi b/icons/turf/walls/rock_wall.dmi index c07657149ac..d3dc61659ec 100644 Binary files a/icons/turf/walls/rock_wall.dmi and b/icons/turf/walls/rock_wall.dmi differ diff --git a/icons/turf/walls/rusty_reinforced_wall.dmi b/icons/turf/walls/rusty_reinforced_wall.dmi index 17081d38010..e2636950d27 100644 Binary files a/icons/turf/walls/rusty_reinforced_wall.dmi and b/icons/turf/walls/rusty_reinforced_wall.dmi differ diff --git a/icons/turf/walls/rusty_wall.dmi b/icons/turf/walls/rusty_wall.dmi index 9efaa0b49b0..063504e44b5 100644 Binary files a/icons/turf/walls/rusty_wall.dmi and b/icons/turf/walls/rusty_wall.dmi differ diff --git a/icons/turf/walls/sandstone_wall.dmi b/icons/turf/walls/sandstone_wall.dmi index 4118a3dbabf..64e22fe5407 100644 Binary files a/icons/turf/walls/sandstone_wall.dmi and b/icons/turf/walls/sandstone_wall.dmi differ diff --git a/icons/turf/walls/shuttle_wall.dmi b/icons/turf/walls/shuttle_wall.dmi index d9c904c3366..f8c03e3946b 100644 Binary files a/icons/turf/walls/shuttle_wall.dmi and b/icons/turf/walls/shuttle_wall.dmi differ diff --git a/icons/turf/walls/silver_wall.dmi b/icons/turf/walls/silver_wall.dmi index d8a93212199..0021acc34c0 100644 Binary files a/icons/turf/walls/silver_wall.dmi and b/icons/turf/walls/silver_wall.dmi differ diff --git a/icons/turf/walls/snow_wall.dmi b/icons/turf/walls/snow_wall.dmi index dfcf459f2a1..e5e51d4f4c8 100644 Binary files a/icons/turf/walls/snow_wall.dmi and b/icons/turf/walls/snow_wall.dmi differ diff --git a/icons/turf/walls/survival_pod_walls.dmi b/icons/turf/walls/survival_pod_walls.dmi index 83fadb92f28..01700f1ed6f 100644 Binary files a/icons/turf/walls/survival_pod_walls.dmi and b/icons/turf/walls/survival_pod_walls.dmi differ diff --git a/icons/turf/walls/uranium_wall.dmi b/icons/turf/walls/uranium_wall.dmi index 67bbc307dd8..47a98397617 100644 Binary files a/icons/turf/walls/uranium_wall.dmi and b/icons/turf/walls/uranium_wall.dmi differ diff --git a/icons/turf/walls/wall.dmi b/icons/turf/walls/wall.dmi index 46f878ca8cd..d1c3d94106e 100644 Binary files a/icons/turf/walls/wall.dmi and b/icons/turf/walls/wall.dmi differ diff --git a/icons/turf/walls/wood_wall.dmi b/icons/turf/walls/wood_wall.dmi index 84e1c083288..608edb20dfb 100644 Binary files a/icons/turf/walls/wood_wall.dmi and b/icons/turf/walls/wood_wall.dmi differ