Fixes more bitmasking issues (#17261)

This commit is contained in:
S34N
2022-01-13 14:12:01 +01:00
committed by GitHub
parent dc7b8bcc8f
commit 962137f291
19 changed files with 77 additions and 75 deletions
+5 -9
View File
@@ -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
+18 -18
View File
@@ -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
+9 -12
View File
@@ -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
+3 -1
View File
@@ -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
+10 -4
View File
@@ -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
+2 -2
View File
@@ -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
+23 -25
View File
@@ -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)
+2 -2
View File
@@ -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)
. = ..()
+1
View File
@@ -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
+1
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB