Fixes more bitmasking issues (#17261)
@@ -1070,7 +1070,7 @@
|
||||
/obj/structure/flora/ausbushes/ppflowers,
|
||||
/obj/structure/flora/ausbushes/stalkybush,
|
||||
/obj/structure/window/full/shuttle,
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/shuttle/arrival/station)
|
||||
"aiH" = (
|
||||
/obj/structure/chair{
|
||||
@@ -67389,10 +67389,6 @@
|
||||
icon_state = "neutralcorner"
|
||||
},
|
||||
/area/medical/medbay3)
|
||||
"cWk" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/simulated/wall/r_wall,
|
||||
/area/maintenance/port)
|
||||
"cWl" = (
|
||||
/obj/machinery/shieldgen,
|
||||
/obj/effect/decal/warning_stripes/east,
|
||||
@@ -89566,7 +89562,7 @@
|
||||
/obj/structure/window/basic{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/exit)
|
||||
"dTe" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
@@ -89857,7 +89853,7 @@
|
||||
/obj/structure/window/basic{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/exit)
|
||||
"dTH" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
|
||||
@@ -92424,7 +92420,7 @@
|
||||
/obj/structure/window/basic{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/exit)
|
||||
"frI" = (
|
||||
/obj/structure/cable{
|
||||
@@ -117900,7 +117896,7 @@ abj
|
||||
abj
|
||||
abj
|
||||
abj
|
||||
cWk
|
||||
dmq
|
||||
dmq
|
||||
cHA
|
||||
cHA
|
||||
|
||||
@@ -17950,13 +17950,13 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
"aPj" = (
|
||||
/mob/living/simple_animal/chicken/featherbottom,
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
@@ -18659,12 +18659,12 @@
|
||||
name = "Animal Pen A";
|
||||
opacity = 1
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
"aQQ" = (
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
@@ -19187,13 +19187,13 @@
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/mob/living/simple_animal/chicken/kentucky,
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
"aSe" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
@@ -20332,7 +20332,7 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
@@ -20344,7 +20344,7 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
@@ -20968,13 +20968,13 @@
|
||||
name = "Animal Pen B";
|
||||
opacity = 1
|
||||
},
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
"aWe" = (
|
||||
/mob/living/simple_animal/cow/betsy,
|
||||
/turf/simulated/floor/grass,
|
||||
/turf/simulated/floor/grass/no_creep,
|
||||
/area/hallway/secondary/construction{
|
||||
name = "\improper Garden"
|
||||
})
|
||||
@@ -90233,7 +90233,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aWD
|
||||
aaa
|
||||
aWD
|
||||
aWD
|
||||
aWD
|
||||
@@ -91261,7 +91261,7 @@ aaa
|
||||
abq
|
||||
aaa
|
||||
aaa
|
||||
aWD
|
||||
aaa
|
||||
aWD
|
||||
aWD
|
||||
aXS
|
||||
@@ -119496,7 +119496,7 @@ aaa
|
||||
aaa
|
||||
abq
|
||||
aaa
|
||||
afb
|
||||
abq
|
||||
afH
|
||||
ajD
|
||||
afH
|
||||
@@ -119753,7 +119753,7 @@ aaa
|
||||
aaa
|
||||
abq
|
||||
abq
|
||||
abe
|
||||
abq
|
||||
afH
|
||||
agk
|
||||
afH
|
||||
@@ -120010,7 +120010,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
abf
|
||||
abq
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -120267,7 +120267,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
abe
|
||||
abq
|
||||
abq
|
||||
abe
|
||||
abq
|
||||
@@ -127476,11 +127476,11 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aoG
|
||||
aaa
|
||||
avN
|
||||
awD
|
||||
avN
|
||||
aoG
|
||||
aaa
|
||||
aoG
|
||||
asJ
|
||||
axh
|
||||
|
||||
@@ -79325,9 +79325,6 @@
|
||||
/obj/structure/grille,
|
||||
/turf/simulated/floor/plating,
|
||||
/area/toxins/mixing)
|
||||
"ejU" = (
|
||||
/turf/space,
|
||||
/area/space/nearstation)
|
||||
"ema" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/visible{
|
||||
dir = 4
|
||||
@@ -91035,7 +91032,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aLd
|
||||
aaa
|
||||
aMs
|
||||
aMs
|
||||
aMs
|
||||
@@ -92063,7 +92060,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aLd
|
||||
aaa
|
||||
aMs
|
||||
aMs
|
||||
aMs
|
||||
@@ -93091,7 +93088,7 @@ aab
|
||||
aab
|
||||
aab
|
||||
aab
|
||||
aLd
|
||||
aab
|
||||
aMs
|
||||
aNw
|
||||
aNw
|
||||
@@ -114786,11 +114783,11 @@ dfC
|
||||
dgb
|
||||
dcq
|
||||
aaa
|
||||
dcq
|
||||
aaa
|
||||
dou
|
||||
doM
|
||||
dou
|
||||
dcq
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -115043,11 +115040,11 @@ dfA
|
||||
dfT
|
||||
dcq
|
||||
aaa
|
||||
dcq
|
||||
aaa
|
||||
dou
|
||||
doz
|
||||
dou
|
||||
dcq
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -115302,7 +115299,7 @@ dgc
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
ejU
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -121607,7 +121604,7 @@ axh
|
||||
auq
|
||||
avu
|
||||
auq
|
||||
atG
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aOI
|
||||
|
||||
@@ -123,4 +123,6 @@ DEFINE_BITFIELD(smoothing_flags, list(
|
||||
|
||||
#define SMOOTH_GROUP_CLEANABLE_DIRT S_OBJ(67) ///obj/effect/decal/cleanable/dirt
|
||||
|
||||
#define SMOOTH_GROUP_RIPPLE S_OBJ(68) ///obj/effect/temp_visual/ripple
|
||||
#define SMOOTH_GROUP_RIPPLE S_OBJ(68) ///obj/effect/temp_visual/ripple
|
||||
|
||||
#define SMOOTH_GROUP_CATWALK S_OBJ(69) ///obj/structure/lattice/catwalk
|
||||
|
||||
@@ -312,10 +312,10 @@ DEFINE_BITFIELD(smoothing_junction, list(
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Objects override this to prevent unanchored objects from smoothing, see /obj/bitmask_smooth()
|
||||
*/
|
||||
/atom/proc/bitmask_smooth()
|
||||
var/new_junction = NONE
|
||||
|
||||
for(var/direction in GLOB.cardinal) //Cardinal case first.
|
||||
SET_ADJ_IN_DIR(src, new_junction, direction, direction)
|
||||
|
||||
@@ -339,6 +339,12 @@ DEFINE_BITFIELD(smoothing_junction, list(
|
||||
|
||||
set_smoothed_icon_state(new_junction)
|
||||
|
||||
///Object override to prevent unanchored objects from smoothing
|
||||
/obj/bitmask_smooth()
|
||||
if(!anchored)
|
||||
set_smoothed_icon_state(0)
|
||||
return
|
||||
return ..()
|
||||
|
||||
///Changes the icon state based on the new junction bitmask. Returns the old junction value.
|
||||
/atom/proc/set_smoothed_icon_state(new_junction)
|
||||
@@ -367,11 +373,11 @@ DEFINE_BITFIELD(smoothing_junction, list(
|
||||
var/turned_adjacency = reverse_direction(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))
|
||||
if(neighbor_turf && (!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency) || neighbor_turf.density)) //dense turfs are unwanted for underlays
|
||||
neighbor_turf = get_step(src, turned_adjacency & (EAST|WEST))
|
||||
if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency))
|
||||
if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency) || neighbor_turf.density)
|
||||
neighbor_turf = get_step(src, turned_adjacency)
|
||||
if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency))
|
||||
if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency) || neighbor_turf.density)
|
||||
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
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
plane = FLOOR_PLANE
|
||||
icon = 'icons/obj/smooth_structures/alien/weeds1.dmi'
|
||||
icon_state = "weeds1-0"
|
||||
icon_state = "weeds1"
|
||||
base_icon_state = "weeds1"
|
||||
max_integrity = 15
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
@@ -175,7 +175,7 @@
|
||||
name = "glowing resin"
|
||||
desc = "Blue bioluminescence shines from beneath the surface."
|
||||
icon = 'icons/obj/smooth_structures/alien/weednode.dmi'
|
||||
icon_state = "weednode-0"
|
||||
icon_state = "weednode"
|
||||
base_icon_state = "weednode"
|
||||
light_range = 1
|
||||
var/node_range = NODERANGE
|
||||
|
||||
@@ -64,44 +64,42 @@
|
||||
/obj/structure/falsewall/proc/toggle(mob/user)
|
||||
if(opening)
|
||||
return
|
||||
|
||||
opening = 1
|
||||
opening = TRUE
|
||||
if(density)
|
||||
flick("fwall_opening", src)
|
||||
density = 0
|
||||
set_opacity(0)
|
||||
update_icon()
|
||||
density = FALSE
|
||||
set_opacity(FALSE)
|
||||
clear_smooth_overlays()
|
||||
icon_state = "fwall_opening"
|
||||
else
|
||||
var/srcturf = get_turf(src)
|
||||
for(var/mob/living/obstacle in srcturf) //Stop people from using this as a shield
|
||||
opening = 0
|
||||
opening = FALSE
|
||||
return
|
||||
flick("fwall_closing", src)
|
||||
density = 1
|
||||
set_opacity(1)
|
||||
update_icon()
|
||||
air_update_turf(1)
|
||||
opening = 0
|
||||
density = TRUE
|
||||
set_opacity(TRUE)
|
||||
icon_state = "fwall_closing"
|
||||
air_update_turf(TRUE)
|
||||
opening = FALSE
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/structure/falsewall/update_icon()
|
||||
if(opening)
|
||||
smoothing_flags = NONE
|
||||
clear_smooth_overlays()
|
||||
if(density)
|
||||
icon_state = "fwall_opening"
|
||||
smoothing_flags = NONE
|
||||
clear_smooth_overlays()
|
||||
else
|
||||
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"
|
||||
return
|
||||
icon_state = "fwall_closing"
|
||||
return
|
||||
if(!density)
|
||||
icon_state = "fwall_open"
|
||||
return
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
icon_state = initial(icon_state)
|
||||
icon_state = "[base_icon_state]-[smoothing_junction]"
|
||||
QUEUE_SMOOTH(src)
|
||||
|
||||
/obj/structure/falsewall/proc/ChangeToWall(delete = TRUE)
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -73,8 +73,8 @@
|
||||
base_icon_state = "catwalk"
|
||||
number_of_rods = 2
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_FLOOR)
|
||||
canSmoothWith = list(SMOOTH_GROUP_LATTICE)
|
||||
smoothing_groups = list(SMOOTH_GROUP_CATWALK, SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_FLOOR)
|
||||
canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CATWALK)
|
||||
|
||||
/obj/structure/lattice/catwalk/deconstruction_hints(mob/user)
|
||||
to_chat(user, "<span class='notice'>The supporting rods look like they could be <b>cut</b>.</span>")
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
/turf/simulated/floor/grass
|
||||
name = "grass patch"
|
||||
icon = 'icons/turf/floors/grass.dmi'
|
||||
icon_state = "grass-0"
|
||||
icon_state = "grass"
|
||||
base_icon_state = "grass"
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_TURF, SMOOTH_GROUP_GRASS)
|
||||
@@ -71,7 +71,7 @@
|
||||
/turf/simulated/floor/grass/jungle
|
||||
name = "jungle grass"
|
||||
icon = 'icons/turf/floors/junglegrass.dmi'
|
||||
icon_state = "junglegrass-0"
|
||||
icon_state = "junglegrass-255"
|
||||
base_icon_state = "junglegrass"
|
||||
smoothing_groups = list(SMOOTH_GROUP_TURF, SMOOTH_GROUP_GRASS, SMOOTH_GROUP_JUNGLE_GRASS)
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
temperature = TCMB
|
||||
smoothing_groups = list(SMOOTH_GROUP_TURF, SMOOTH_GROUP_LATTICE)
|
||||
|
||||
/turf/simulated/floor/plasteel/airless/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
/turf/simulated/mineral/gibtonite = 2, /turf/simulated/mineral/bscrystal = 1)
|
||||
|
||||
/turf/simulated/mineral/random/volcanic
|
||||
icon_state = "smoothrocks"
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
density = FALSE
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_RIPPLE)
|
||||
canSmoothWith = list(SMOOTH_GROUP_RIPPLE)
|
||||
layer = RIPPLE_LAYER
|
||||
alpha = 0
|
||||
duration = 3 * SHUTTLE_RIPPLE_TIME
|
||||
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 6.1 KiB |