diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 0b2ed59a52d..7ce97c59206 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -23,12 +23,20 @@ #define FLOOR_PLANE -7 -#define GAME_PLANE -4 -#define GAME_PLANE_FOV_HIDDEN -3 + +#define GAME_PLANE -6 +#define GAME_PLANE_FOV_HIDDEN -5 +#define GAME_PLANE_UPPER -4 +#define GAME_PLANE_UPPER_FOV_HIDDEN -3 + #define ABOVE_GAME_PLANE -2 +// PLANE_SPACE layer(s) #define SPACE_LAYER 1.8 -//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define + +//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define. Most floors (FLOOR_PLANE) and walls (GAME_PLANE) use this. + +// GAME_PLANE layers #define CULT_OVERLAY_LAYER 2.01 #define MID_TURF_LAYER 2.02 #define HIGH_TURF_LAYER 2.03 @@ -78,28 +86,40 @@ #define CORGI_ASS_PIN_LAYER 3.41 #define NOT_HIGH_OBJ_LAYER 3.5 #define HIGH_OBJ_LAYER 3.6 - #define BELOW_MOB_LAYER 3.7 + +// GAME_PLANE_FOV_HIDDEN layers +#define LOW_MOB_LAYER 3.75 #define LYING_MOB_LAYER 3.8 +#define VEHICLE_LAYER 3.9 #define MOB_BELOW_PIGGYBACK_LAYER 3.94 //#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define #define MOB_SHIELD_LAYER 4.01 #define MOB_ABOVE_PIGGYBACK_LAYER 4.06 +#define MOB_UPPER_LAYER 4.07 +#define HITSCAN_PROJECTILE_LAYER 4.09 //above all mob but still hidden by FoV + +// GAME_PLANE_UPPER layers #define ABOVE_MOB_LAYER 4.1 #define WALL_OBJ_LAYER 4.25 #define EDGED_TURF_LAYER 4.3 #define ON_EDGED_TURF_LAYER 4.35 -#define LARGE_MOB_LAYER 4.4 -#define ABOVE_ALL_MOB_LAYER 4.5 +#define SPACEVINE_LAYER 4.4 -#define SPACEVINE_LAYER 4.8 -#define SPACEVINE_MOB_LAYER 4.9 +// GAME_PLANE_UPPER_FOV_HIDDEN layers +#define LARGE_MOB_LAYER 4.5 +#define SPACEVINE_MOB_LAYER 4.6 + +// Intermediate layer used by both GAME_PLANE_FOV_HIDDEN and ABOVE_GAME_PLANE +#define ABOVE_ALL_MOB_LAYER 4.7 + +// ABOVE_GAME_PLANE layers //#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define #define GASFIRE_LAYER 5.05 #define RIPPLE_LAYER 5.1 -#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals +#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals #define AREA_PLANE 60 #define MASSIVE_OBJ_PLANE 70 diff --git a/code/_onclick/hud/rendering/plane_master.dm b/code/_onclick/hud/rendering/plane_master.dm index edde6925097..fc5cc6797e5 100644 --- a/code/_onclick/hud/rendering/plane_master.dm +++ b/code/_onclick/hud/rendering/plane_master.dm @@ -86,6 +86,20 @@ . = ..() add_filter("vision_cone", 1, alpha_mask_filter(render_source = FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags = MASK_INVERSE)) +/atom/movable/screen/plane_master/game_world_upper + name = "upper game world plane master" + plane = GAME_PLANE_UPPER + render_relay_plane = GAME_PLANE + appearance_flags = PLANE_MASTER //should use client color + blend_mode = BLEND_OVERLAY + +/atom/movable/screen/plane_master/game_world_upper_fov_hidden + name = "upper game world fov hidden plane master" + plane = GAME_PLANE_UPPER_FOV_HIDDEN + render_relay_plane = GAME_PLANE_FOV_HIDDEN + appearance_flags = PLANE_MASTER //should use client color + blend_mode = BLEND_OVERLAY + /atom/movable/screen/plane_master/game_world_above name = "above game world plane master" plane = ABOVE_GAME_PLANE diff --git a/code/_onclick/hud/rendering/plane_master_controller.dm b/code/_onclick/hud/rendering/plane_master_controller.dm index 8ae132fd078..8d0c98cbd90 100644 --- a/code/_onclick/hud/rendering/plane_master_controller.dm +++ b/code/_onclick/hud/rendering/plane_master_controller.dm @@ -86,6 +86,8 @@ INITIALIZE_IMMEDIATE(/atom/movable/plane_master_controller) FLOOR_PLANE, GAME_PLANE, GAME_PLANE_FOV_HIDDEN, + GAME_PLANE_UPPER, + GAME_PLANE_UPPER_FOV_HIDDEN, ABOVE_GAME_PLANE, MASSIVE_OBJ_PLANE, GHOST_PLANE, diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm index b3b8b333c78..220e44d28b2 100644 --- a/code/datums/actions/mobs/lava_swoop.dm +++ b/code/datums/actions/mobs/lava_swoop.dm @@ -194,6 +194,7 @@ icon = 'icons/effects/96x96.dmi' icon_state = "landing" layer = BELOW_MOB_LAYER + plane = GAME_PLANE pixel_x = -32 pixel_y = -32 color = "#FF0000" @@ -203,6 +204,7 @@ icon = 'icons/mob/lavaland/64x64megafauna.dmi' icon_state = "dragon" layer = ABOVE_ALL_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN pixel_x = -16 duration = 10 randomdir = FALSE diff --git a/code/datums/ai/telegraph_effects.dm b/code/datums/ai/telegraph_effects.dm index 20693f4b205..7508de29b40 100644 --- a/code/datums/ai/telegraph_effects.dm +++ b/code/datums/ai/telegraph_effects.dm @@ -2,6 +2,7 @@ icon = 'icons/mob/telegraphing/telegraph_holographic.dmi' icon_state = "target_box" layer = BELOW_MOB_LAYER + plane = GAME_PLANE light_range = 1 duration = 2 SECONDS diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 0d26b6ef456..a5c7710b067 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -215,6 +215,7 @@ //speech bubble if(owner.client) var/mutable_appearance/MA = mutable_appearance('icons/mob/talk.dmi', src, "default[say_test(message)]", FLY_LAYER) + MA.plane = ABOVE_GAME_PLANE MA.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, MA, list(owner.client), 30) diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 493369d6cd3..c3427f53c53 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -101,6 +101,7 @@ image_icon = 'icons/effects/effects.dmi' image_state = "bluestream" image_layer = ABOVE_MOB_LAYER + image_plane = GAME_PLANE_UPPER var/obj/effect/hallucination/simple/bluespace_stream/linked_to var/mob/living/carbon/seer diff --git a/code/datums/proximity_monitor/fields/peaceborg_dampener.dm b/code/datums/proximity_monitor/fields/peaceborg_dampener.dm index 16b637afada..9d2549e89c2 100644 --- a/code/datums/proximity_monitor/fields/peaceborg_dampener.dm +++ b/code/datums/proximity_monitor/fields/peaceborg_dampener.dm @@ -55,6 +55,7 @@ effect.icon_state = overlay.icon_state effect.mouse_opacity = MOUSE_OPACITY_TRANSPARENT effect.layer = ABOVE_ALL_MOB_LAYER + effect.plane = ABOVE_GAME_PLANE LAZYSET(edgeturf_effects, target, effect) /datum/proximity_monitor/advanced/peaceborg_dampener/cleanup_edge_turf(turf/target) diff --git a/code/datums/proximity_monitor/fields/timestop.dm b/code/datums/proximity_monitor/fields/timestop.dm index 70ea170ab38..21357528456 100644 --- a/code/datums/proximity_monitor/fields/timestop.dm +++ b/code/datums/proximity_monitor/fields/timestop.dm @@ -6,6 +6,7 @@ icon = 'icons/effects/160x160.dmi' icon_state = "time" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE pixel_x = -64 pixel_y = -64 mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index a7ab204ef42..690227aea74 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -11,6 +11,7 @@ idle_power_usage = 5 active_power_usage = 10 layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER resistance_flags = FIRE_PROOF damage_deflection = 12 armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 90, ACID = 50) diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 8e344b4eb85..e22a0a4a7f3 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -223,7 +223,8 @@ if(visible_icon) if(eye_user.client) eye_user.client.images -= user_image - user_image = image(icon,loc,icon_state,FLY_LAYER) + user_image = image(icon,loc,icon_state, FLY_LAYER) + user_image.plane = ABOVE_GAME_PLANE eye_user.client.images += user_image /mob/camera/ai_eye/remote/relaymove(mob/living/user, direction) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 46c97a68500..2b6c797a87e 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -508,7 +508,8 @@ Possible to do for anyone motivated enough: Hologram.Impersonation = user Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it. - Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. + Hologram.layer = FLY_LAYER //Above all the other objects/mobs. Or the vast majority of them. + Hologram.plane = ABOVE_GAME_PLANE Hologram.set_anchored(TRUE)//So space wind cannot drag it. Hologram.name = "[user.name] (Hologram)"//If someone decides to right click. Hologram.set_light(2) //hologram lighting @@ -686,6 +687,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ holder.selected_language = record.language Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it. Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. + Hologram.plane = ABOVE_GAME_PLANE Hologram.set_anchored(TRUE)//So space wind cannot drag it. Hologram.name = "[record.caller_name] (Hologram)"//If someone decides to right click. Hologram.set_light(2) //hologram lighting @@ -812,6 +814,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ icon = 'icons/effects/96x96.dmi' icon_state = "holoray" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE density = FALSE anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index 789718fe3fd..0076cc4cece 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -19,6 +19,7 @@ icon_state = "kiosk" base_icon_state = "kiosk" layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER density = TRUE circuit = /obj/item/circuitboard/machine/medical_kiosk payment_department = ACCOUNT_MED diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index f26f5cfc15f..e7c9ba8d002 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -6,6 +6,7 @@ icon = 'icons/obj/recycling.dmi' icon_state = "grinder-o0" layer = ABOVE_ALL_MOB_LAYER // Overhead + plane = ABOVE_GAME_PLANE density = TRUE circuit = /obj/item/circuitboard/machine/recycler var/safety_mode = FALSE // Temporarily stops machine if it detects a mob diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 3cc6d0e24ac..748314f0a63 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -69,6 +69,7 @@ max_integrity = 20 mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER /obj/structure/emergency_shield/cult/barrier density = FALSE //toggled on right away by the parent rune diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 45a0776948f..516cffa7361 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -6,6 +6,7 @@ icon = 'icons/obj/recycling.dmi' icon_state = "separator-AO1" layer = ABOVE_ALL_MOB_LAYER // Overhead + plane = ABOVE_GAME_PLANE density = FALSE var/transform_dead = 0 var/transform_standing = 0 diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 3293a5c248e..95ba009efc8 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -105,6 +105,7 @@ desc = "Somebody should remove that." gender = NEUTER layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER icon_state = "cobweb1" resistance_flags = FLAMMABLE beauty = -100 diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 8db5f7cc6c5..f273bcddf3b 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -19,6 +19,7 @@ icon = 'icons/obj/chempuff.dmi' pass_flags = PASSTABLE | PASSGRILLE layer = FLY_LAYER + plane = ABOVE_GAME_PLANE ///The mob who sourced this puff, if one exists var/mob/user ///The sprayer who fired this puff diff --git a/code/game/objects/effects/effect_system/effects_explosion.dm b/code/game/objects/effects/effect_system/effects_explosion.dm index 09184e6ef8b..60ed4f31dcb 100644 --- a/code/game/objects/effects/effect_system/effects_explosion.dm +++ b/code/game/objects/effects/effect_system/effects_explosion.dm @@ -33,6 +33,7 @@ icon_state = "explosion" opacity = TRUE anchored = TRUE + layer = ABOVE_ALL_MOB_LAYER plane = ABOVE_GAME_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT pixel_x = -32 diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index ad674a8a02d..573dfc20aa2 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -12,7 +12,7 @@ anchored = TRUE density = FALSE layer = EDGED_TURF_LAYER - plane = ABOVE_GAME_PLANE + plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT var/amount = 3 animate_movement = NO_STEPS @@ -271,6 +271,7 @@ opacity = TRUE // changed in New() anchored = TRUE layer = EDGED_TURF_LAYER + plane = GAME_PLANE_UPPER resistance_flags = FIRE_PROOF | ACID_PROOF name = "foamed metal" desc = "A lightweight foamed metal wall that can be used as base to construct a wall." diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index f8f8b50b6be..a445323e4b2 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -4,6 +4,7 @@ icon_state = "x2" anchored = TRUE layer = TURF_LAYER + plane = GAME_PLANE invisibility = INVISIBILITY_ABSTRACT resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 9a9de82e9bf..136bc191cdf 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -39,6 +39,7 @@ opacity = TRUE density = TRUE layer = FLY_LAYER + plane = ABOVE_GAME_PLANE //Makes a tile fully lit no matter what /obj/effect/fullbright @@ -54,6 +55,7 @@ anchored = TRUE icon_state = "wave3" layer = RIPPLE_LAYER + plane = ABOVE_GAME_PLANE /obj/effect/abstract/marker/Initialize(mapload) . = ..() diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 5165c109120..aaa4da9bdd0 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -23,6 +23,7 @@ icon_state = "palm1" density = TRUE layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER anchored = TRUE /obj/effect/overlay/palmtree_l @@ -31,6 +32,7 @@ icon_state = "palm2" density = TRUE layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER anchored = TRUE /obj/effect/overlay/coconut diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index d248188db11..51100b771eb 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -34,6 +34,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "anom" layer = RIPPLE_LAYER + plane = ABOVE_GAME_PLANE mech_sized = TRUE teleport_channel = TELEPORT_CHANNEL_WORMHOLE diff --git a/code/game/objects/effects/temporary_visuals/cult.dm b/code/game/objects/effects/temporary_visuals/cult.dm index 7dda4fccfa9..f000aa4c039 100644 --- a/code/game/objects/effects/temporary_visuals/cult.dm +++ b/code/game/objects/effects/temporary_visuals/cult.dm @@ -35,6 +35,7 @@ name = "unholy glow" icon_state = "doorglow" layer = CLOSED_FIREDOOR_LAYER //above closed doors + plane = GAME_PLANE /obj/effect/temp_visual/cult/door/unruned icon_state = "unruneddoorglow" @@ -43,6 +44,7 @@ name = "unholy glow" icon_state = "wallglow" layer = ABOVE_NORMAL_TURF_LAYER + plane = GAME_PLANE /obj/effect/temp_visual/cult/turf/floor icon_state = "floorglow" @@ -53,6 +55,7 @@ icon_state = "space" duration = 600 layer = ABOVE_OBJ_LAYER + plane = GAME_PLANE //visuals for runes being magically created /obj/effect/temp_visual/cult/rune_spawn diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 2ca0801d7e8..ee4219635db 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -4,6 +4,7 @@ duration = 5 randomdir = FALSE layer = BELOW_MOB_LAYER + plane = GAME_PLANE var/splatter_type = "splatter" /obj/effect/temp_visual/dir_setting/bloodsplatter/Initialize(mapload, set_dir) @@ -20,6 +21,7 @@ if(SOUTH) target_pixel_y = -16 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER if(EAST) target_pixel_x = 16 if(WEST) @@ -34,10 +36,12 @@ target_pixel_x = 16 target_pixel_y = -16 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER if(SOUTHWEST) target_pixel_x = -16 target_pixel_y = -16 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER animate(src, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = duration) /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter @@ -47,6 +51,7 @@ name = "speedbike trails" icon_state = "ion_fade" layer = BELOW_MOB_LAYER + plane = GAME_PLANE duration = 10 randomdir = 0 @@ -136,7 +141,8 @@ /obj/effect/temp_visual/dir_setting/curse/grasp_portal icon = 'icons/effects/64x64.dmi' - layer = LARGE_MOB_LAYER + layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE pixel_y = -16 pixel_x = -16 duration = 32 @@ -156,6 +162,7 @@ icon = 'icons/effects/beam_splash.dmi' icon_state = "beam_splash_l" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE pixel_y = -16 duration = 50 @@ -315,6 +322,7 @@ icon = 'icons/obj/guns/projectiles.dmi' icon_state = "kinetic_blast" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE duration = 4 /obj/effect/temp_visual/explosion @@ -480,6 +488,7 @@ icon = 'icons/effects/effects_rcd.dmi' icon_state = "" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT var/status = 0 diff --git a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm index 65654533e9e..cc48a4ee741 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm @@ -2,7 +2,7 @@ name = "pew" icon = 'icons/obj/guns/projectiles.dmi' icon_state = "nothing" - layer = ABOVE_MOB_LAYER + layer = HITSCAN_PROJECTILE_LAYER plane = GAME_PLANE_FOV_HIDDEN anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.dm b/code/game/objects/effects/temporary_visuals/temporary_visual.dm index 8413b9d97e0..fc141acecb8 100644 --- a/code/game/objects/effects/temporary_visuals/temporary_visual.dm +++ b/code/game/objects/effects/temporary_visuals/temporary_visual.dm @@ -3,6 +3,7 @@ icon_state = "nothing" anchored = TRUE layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT ///time, in deciseconds, that this object will exist var/duration = 10 diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm index 035589d23d8..32e941eff6c 100644 --- a/code/game/objects/items/crab17.dm +++ b/code/game/objects/items/crab17.dm @@ -37,7 +37,8 @@ desc = "This is good for spacecoin because" icon = 'icons/obj/money_machine.dmi' icon_state = "bogdanoff" - layer = LARGE_MOB_LAYER + layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE armor = list(MELEE = 80, BULLET = 30, LASER = 30, ENERGY = 60, BOMB = 90, BIO = 0, FIRE = 100, ACID = 80) density = TRUE pixel_z = -8 @@ -203,6 +204,7 @@ pixel_z = 300 desc = "Get out of the way!" layer = FLY_LAYER//that wasn't flying, that was falling with style! + plane = ABOVE_GAME_PLANE icon_state = "missile_blur" /obj/effect/dumpeet_target diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 66285bba565..8fb8368eb57 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -567,7 +567,7 @@ light_range = 4 light_power = 10 alpha = 0 - layer = 0 + plane = FLOOR_PLANE on = TRUE anchored = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 148074a501c..0a46b63e6cc 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -97,6 +97,7 @@ icon = 'icons/effects/effects.dmi' icon_state = "forcefield" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE anchored = TRUE pass_flags_self = PASSGLASS density = TRUE diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 5bd0dda5ea1..7e5c31d1bdc 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -161,6 +161,7 @@ inhand_icon_state = "supermattersliver" pulseicon = "supermatter_sliver_pulse" layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER /obj/item/nuke_core/supermatter_sliver/attack_tk(mob/user) // no TK dusting memes diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 13c16662a63..5125fa8c468 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -127,7 +127,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/claymore/highlander/process() if(ishuman(loc)) var/mob/living/carbon/human/H = loc - loc.layer = LARGE_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS) + loc.plane = GAME_PLANE_UPPER_FOV_HIDDEN //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS) ADD_TRAIT(H, TRAIT_NOBLEED, HIGHLANDER_TRAIT) //AND WE WON'T BLEED OUT LIKE COWARDS else if(!(flags_1 & ADMIN_SPAWNED_1)) @@ -242,7 +242,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 return INITIALIZE_HINT_QDEL /obj/item/claymore/highlander/robot/process() - loc.layer = LARGE_MOB_LAYER + loc.plane = GAME_PLANE_UPPER_FOV_HIDDEN /obj/item/katana name = "katana" @@ -936,6 +936,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 icon_state = "highfreq_slash" alpha = 150 duration = 0.5 SECONDS + layer = ABOVE_ALL_MOB_LAYER plane = ABOVE_GAME_PLANE /obj/effect/temp_visual/slash/Initialize(mapload, atom/target, x_slashed, y_slashed) diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index 847ce9e0dcd..a59bfebb0be 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -337,6 +337,7 @@ integrity_failure = 0.05 var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive layer = MOB_LAYER + plane = GAME_PLANE_FOV_HIDDEN var/obj/item/clothing/mask/facehugger/child ///Proximity monitor associated with this atom, needed for proximity checks. var/datum/proximity_monitor/proximity_monitor diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 8ccee02e2cd..02592ad3193 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -111,8 +111,10 @@ /obj/structure/chair/proc/handle_layer() if(has_buckled_mobs() && dir == NORTH) layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER else layer = OBJ_LAYER + plane = GAME_PLANE /obj/structure/chair/post_buckle_mob(mob/living/M) . = ..() @@ -167,7 +169,7 @@ /obj/structure/chair/comfy/Initialize(mapload) armrest = GetArmrest() armrest.layer = ABOVE_MOB_LAYER - armrest.plane = ABOVE_GAME_PLANE + armrest.plane = GAME_PLANE_UPPER return ..() /obj/structure/chair/comfy/proc/GetArmrest() diff --git a/code/game/objects/structures/beds_chairs/pew.dm b/code/game/objects/structures/beds_chairs/pew.dm index e2a17b542a5..db9dcacf173 100644 --- a/code/game/objects/structures/beds_chairs/pew.dm +++ b/code/game/objects/structures/beds_chairs/pew.dm @@ -21,6 +21,7 @@ /obj/structure/chair/pew/left/Initialize(mapload) leftpewarmrest = GetLeftPewArmrest() leftpewarmrest.layer = ABOVE_MOB_LAYER + leftpewarmrest.plane = GAME_PLANE_UPPER return ..() /obj/structure/chair/pew/left/proc/GetLeftPewArmrest() @@ -52,6 +53,7 @@ /obj/structure/chair/pew/right/Initialize(mapload) rightpewarmrest = GetRightPewArmrest() rightpewarmrest.layer = ABOVE_MOB_LAYER + rightpewarmrest.plane = GAME_PLANE_UPPER return ..() /obj/structure/chair/pew/right/proc/GetRightPewArmrest() diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index e966ca25940..5d294e77538 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -8,6 +8,7 @@ /obj/structure/chair/sofa/Initialize(mapload) armrest = mutable_appearance(icon, "[icon_state]_armrest", ABOVE_MOB_LAYER) + armrest.plane = GAME_PLANE_UPPER return ..() /obj/structure/chair/sofa/electrify_self(obj/item/assembly/shock_kit/input_shock_kit, mob/user, list/overlays_from_child_procs) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 2e132c54f2f..a24f26ed0f3 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -17,8 +17,7 @@ LINEN BINS icon_state = "sheetwhite" inhand_icon_state = "sheetwhite" slot_flags = ITEM_SLOT_NECK - layer = MOB_LAYER - plane = GAME_PLANE_FOV_HIDDEN + layer = BELOW_MOB_LAYER throwforce = 0 throw_speed = 1 throw_range = 2 @@ -46,11 +45,13 @@ LINEN BINS return if(layer == initial(layer)) layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER to_chat(user, span_notice("You cover yourself with [src].")) pixel_x = 0 pixel_y = 0 else layer = initial(layer) + plane = initial(plane) to_chat(user, span_notice("You smooth [src] out beneath you.")) add_fingerprint(user) return diff --git a/code/game/objects/structures/deployable_turret.dm b/code/game/objects/structures/deployable_turret.dm index 90303e727c7..92fdc82f23d 100644 --- a/code/game/objects/structures/deployable_turret.dm +++ b/code/game/objects/structures/deployable_turret.dm @@ -12,6 +12,7 @@ max_integrity = 100 buckle_lying = 0 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER var/view_range = 2.5 var/cooldown = 0 /// The projectile that the turret fires @@ -92,6 +93,7 @@ M.put_in_hands(TC) M.pixel_y = 14 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER setDir(SOUTH) playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) set_anchored(TRUE) @@ -126,34 +128,42 @@ switch(dir) if(NORTH) layer = BELOW_MOB_LAYER + plane = GAME_PLANE user.pixel_x = 0 user.pixel_y = -14 if(NORTHEAST) layer = BELOW_MOB_LAYER + plane = GAME_PLANE user.pixel_x = -8 user.pixel_y = -4 if(EAST) layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER user.pixel_x = -14 user.pixel_y = 0 if(SOUTHEAST) layer = BELOW_MOB_LAYER + plane = GAME_PLANE user.pixel_x = -8 user.pixel_y = 4 if(SOUTH) layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER user.pixel_x = 0 user.pixel_y = 14 if(SOUTHWEST) layer = BELOW_MOB_LAYER + plane = GAME_PLANE user.pixel_x = 8 user.pixel_y = 4 if(WEST) layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER user.pixel_x = 14 user.pixel_y = 0 if(NORTHWEST) layer = BELOW_MOB_LAYER + plane = GAME_PLANE user.pixel_x = 8 user.pixel_y = -4 diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index d052b884577..c9bf93febcc 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -10,6 +10,7 @@ density = TRUE pixel_x = -16 layer = FLY_LAYER + plane = ABOVE_GAME_PLANE var/log_amount = 10 /obj/structure/flora/tree/attackby(obj/item/W, mob/user, params) @@ -306,6 +307,7 @@ icon_state = "plant-01" desc = "A little bit of nature contained in a pot." layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER w_class = WEIGHT_CLASS_HUGE force = 10 throwforce = 13 @@ -490,6 +492,7 @@ pixel_x = -16 pixel_y = -12 layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE /obj/structure/flora/rock/pile/largejungle name = "rocks" diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index e42c3f26c72..66bb8d1ab23 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -79,6 +79,7 @@ density = TRUE deconstructible = FALSE layer = EDGED_TURF_LAYER + plane = GAME_PLANE_UPPER /** * A variety of statue in disrepair; parts are broken off and a gemstone is missing */ @@ -104,6 +105,7 @@ icon_state = "frontwalltop" density = FALSE layer = ABOVE_ALL_MOB_LAYER //except for the stairs tile, which should be set to OBJ_LAYER aka 3. + plane = ABOVE_GAME_PLANE /obj/structure/fluff/bus/passable/seat @@ -112,6 +114,7 @@ icon_state = "backseat" pixel_y = 17 layer = OBJ_LAYER + plane = GAME_PLANE /obj/structure/fluff/bus/passable/seat/driver diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 6ad641b0b53..8b799fc4d22 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -24,6 +24,7 @@ buckle_lying = 0 buckle_prevents_pull = TRUE layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER var/blade_status = GUILLOTINE_BLADE_RAISED var/blade_sharpness = GUILLOTINE_BLADE_MAX_SHARP // How sharp the blade is var/kill_count = 0 diff --git a/code/game/objects/structures/gym.dm b/code/game/objects/structures/gym.dm index 0a37706da97..d835184b3ab 100644 --- a/code/game/objects/structures/gym.dm +++ b/code/game/objects/structures/gym.dm @@ -5,6 +5,7 @@ icon_state = "punchingbag" anchored = TRUE layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER var/list/hit_sounds = list('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg',\ 'sound/weapons/punch1.ogg', 'sound/weapons/punch2.ogg', 'sound/weapons/punch3.ogg', 'sound/weapons/punch4.ogg') @@ -82,6 +83,7 @@ /obj/structure/weightmachine/weightlifter/AnimateMachine(mob/living/user) var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER) + swole_overlay.plane = GAME_PLANE_UPPER add_overlay(swole_overlay) var/reps = 0 user.pixel_y = 5 diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index b7cd446950e..0e8c5023747 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -14,7 +14,7 @@ . = ..() if(use_vis_overlay) alpha = 0 - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, GAME_PLANE_UPPER, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it if(source_projector) projector = source_projector LAZYADD(projector.signs, src) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index 2f8cd9e12d1..8604fd64825 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -15,7 +15,7 @@ /obj/structure/plasticflaps/Initialize(mapload) . = ..() alpha = 0 - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, GAME_PLANE_UPPER, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it /obj/structure/plasticflaps/examine(mob/user) . = ..() diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index 63f374ac1ff..614c192f04a 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -113,6 +113,7 @@ return var/mutable_appearance/water_falling = mutable_appearance('icons/obj/watercloset.dmi', "water", ABOVE_MOB_LAYER) water_falling.color = mix_color_from_reagents(reagents.reagent_list) + water_falling.plane = GAME_PLANE_UPPER . += water_falling /obj/machinery/shower/proc/handle_mist() @@ -211,6 +212,7 @@ icon = 'icons/obj/watercloset.dmi' icon_state = "mist" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index f1f8cf67494..a499bef5503 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -655,10 +655,12 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) open = !open if(open) layer = SIGN_LAYER + plane = GAME_PLANE set_density(FALSE) set_opacity(FALSE) else layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER set_density(TRUE) if(opaque_closed) set_opacity(TRUE) @@ -755,6 +757,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) /obj/structure/curtain/cloth/fancy/mechanical/proc/open() icon_state = "[icon_type]-open" layer = SIGN_LAYER + plane = GAME_PLANE set_density(FALSE) open = TRUE set_opacity(FALSE) @@ -762,6 +765,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) /obj/structure/curtain/cloth/fancy/mechanical/proc/close() icon_state = "[icon_type]-closed" layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER set_density(TRUE) open = FALSE if(opaque_closed) diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 7fd5de8a253..6606de85f4e 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -14,6 +14,7 @@ opacity = TRUE density = TRUE layer = EDGED_TURF_LAYER + plane = GAME_PLANE_UPPER base_icon_state = "smoothrocks" temperature = TCMB var/smooth_icon = 'icons/turf/smoothrocks.dmi' @@ -551,6 +552,7 @@ /turf/closed/mineral/gibtonite/proc/explosive_reaction(mob/user = null, triggered_by_explosion = 0) if(stage == GIBTONITE_UNSTRUCK) activated_overlay = mutable_appearance('icons/turf/smoothrocks.dmi', "rock_Gibtonite_inactive", ON_EDGED_TURF_LAYER) //shows in gaps between pulses if there are any + activated_overlay.plane = GAME_PLANE_UPPER add_overlay(activated_overlay) name = "gibtonite deposit" desc = "An active gibtonite reserve. Run!" diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index c5492689ea3..04d4ab04396 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -411,6 +411,7 @@ GLOBAL_DATUM(everyone_a_traitor, /datum/everyone_is_a_traitor_controller) portalAnnounce(prefs["announcement"]["value"], (prefs["playlightning"]["value"] == "Yes" ? TRUE : FALSE)) var/mutable_appearance/storm = mutable_appearance('icons/obj/tesla_engine/energy_ball.dmi', "energy_ball_fast", FLY_LAYER) + storm.plane = ABOVE_GAME_PLANE storm.color = prefs["color"]["value"] message_admins("[key_name_admin(holder)] has created a customized portal storm that will spawn [prefs["portalnum"]["value"]] portals, each of them spawning [prefs["amount"]["value"]] of [pathToSpawn]") diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 8ec47663256..c0c92f1d986 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -16,6 +16,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) see_in_dark = 8 invisibility = INVISIBILITY_OBSERVER layer = FLY_LAYER + plane = ABOVE_GAME_PLANE see_invisible = SEE_INVISIBLE_LIVING pass_flags = PASSBLOB faction = list(ROLE_BLOB) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm index 19bd3143161..dd6f45bb842 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm @@ -665,6 +665,7 @@ icon_state = "small_rune_1" duration = 1 MINUTES layer = LOW_SIGIL_LAYER + plane = GAME_PLANE /obj/effect/temp_visual/glowing_rune/Initialize(mapload) . = ..() diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index bbdcb2d0ecb..06c9933710c 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -366,6 +366,7 @@ name = "tornado" desc = "This thing sucks!" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE randomdir = 0 duration = 40 pixel_x = 500 diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index 16ac351fbaa..6d0ea3fa379 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -57,6 +57,7 @@ icon = 'icons/effects/fire.dmi' icon_state = "1" layer = GASFIRE_LAYER + plane = ABOVE_GAME_PLANE blend_mode = BLEND_ADD light_system = MOVABLE_LIGHT light_range = LIGHT_RANGE_FIRE diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index de2c8482f1a..2607eb9afda 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -255,6 +255,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE // should only appear in vis_contents, but to be safe layer = FLY_LAYER + plane = ABOVE_GAME_PLANE appearance_flags = TILE_BOUND vis_flags = NONE diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm index d8461e2507e..a47652f6a27 100644 --- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm +++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm @@ -9,6 +9,7 @@ name = "crystallizer" desc = "Used to crystallize or solidify gases." layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER density = TRUE max_integrity = 300 armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 80, ACID = 30) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 567acf2a0ea..5fd68f74c9b 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -16,7 +16,8 @@ // Must be tall, otherwise the filter will consider this as a 32x32 tile // and will crop the head off. icon_state = "mask_bg" - layer = MOB_LAYER + 0.01 + layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT pixel_y = 22 appearance_flags = KEEP_TOGETHER diff --git a/code/modules/awaymissions/super_secret_room.dm b/code/modules/awaymissions/super_secret_room.dm index b3e81e9a5cd..af9ee82a6ca 100644 --- a/code/modules/awaymissions/super_secret_room.dm +++ b/code/modules/awaymissions/super_secret_room.dm @@ -4,7 +4,8 @@ verb_say = "intones" icon = 'icons/obj/structures.dmi' icon_state = "speaking_tile" - layer = 5 + layer = FLY_LAYER + plane = ABOVE_GAME_PLANE resistance_flags = INDESTRUCTIBLE var/speaking = FALSE var/times_spoken_to = 0 diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index 700a1134023..52eb1611bae 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -879,6 +879,8 @@ GLOBAL_DATUM_INIT(podlauncher, /datum/centcom_podlauncher, new) image_icon = 'icons/obj/supplypods_32x32.dmi' image_state = "selector" image_layer = FLY_LAYER + layer = FLY_LAYER + plane = ABOVE_GAME_PLANE alpha = 150 /obj/effect/hallucination/simple/dropoff_location @@ -886,4 +888,6 @@ GLOBAL_DATUM_INIT(podlauncher, /datum/centcom_podlauncher, new) image_icon = 'icons/obj/supplypods_32x32.dmi' image_state = "dropoff_indicator" image_layer = FLY_LAYER + layer = FLY_LAYER + plane = ABOVE_GAME_PLANE alpha = 0 diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index 1efb08deb04..089081d43ac 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -459,6 +459,7 @@ glow_effect.icon_state = "pod_glow_" + GLOB.podstyles[style][POD_GLOW] vis_contents += glow_effect glow_effect.layer = GASFIRE_LAYER + glow_effect.plane = ABOVE_GAME_PLANE RegisterSignal(glow_effect, COMSIG_PARENT_QDELETING, .proc/remove_glow) /obj/structure/closet/supplypod/proc/endGlow() @@ -497,6 +498,7 @@ icon_state = "pod_engineglow" desc = "" layer = GASFIRE_LAYER + plane = ABOVE_GAME_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT alpha = 255 @@ -622,6 +624,7 @@ setupSmoke(rotation) pod.transform = matrix().Turn(rotation) pod.layer = FLY_LAYER + pod.plane = ABOVE_GAME_PLANE if (pod.style != STYLE_INVISIBLE) animate(pod, pixel_z = -1 * abs(sin(rotation))*4, pixel_x = SUPPLYPOD_X_OFFSET + (sin(rotation) * 20), time = pod.delays[POD_FALLING], easing = LINEAR_EASING) //Make the pod fall! At an angle! addtimer(CALLBACK(src, .proc/endLaunch), pod.delays[POD_FALLING], TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation @@ -633,6 +636,7 @@ var/obj/effect/supplypod_smoke/smoke_part = new (drop_location()) if (i == 1) smoke_part.layer = FLY_LAYER + smoke_part.plane = ABOVE_GAME_PLANE smoke_part.icon_state = "smoke_start" smoke_part.transform = matrix().Turn(rotation) smoke_effects[i] = smoke_part diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index b3051827578..67dd4308468 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -45,6 +45,7 @@ icon = 'icons/effects/landmarks_static.dmi' icon_state = "x2" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE var/festive_tree = /obj/structure/flora/tree/pine/xmas var/christmas_tree = /obj/structure/flora/tree/pine/xmas/presents diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index ad9eae0e278..757b5336805 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -37,6 +37,7 @@ /datum/round_event/portal_storm/setup() storm = mutable_appearance('icons/obj/tesla_engine/energy_ball.dmi', "energy_ball_fast", FLY_LAYER) + storm.plane = ABOVE_GAME_PLANE storm.color = "#00FF00" number_of_bosses = 0 diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index aa402df5334..50b72e59334 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -322,6 +322,7 @@ anchored = TRUE density = FALSE layer = SPACEVINE_LAYER + plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_OPAQUE //Clicking anywhere on the turf is good enough pass_flags = PASSTABLE | PASSGRILLE max_integrity = 50 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cd29bcd665e..7acca625cd1 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -103,6 +103,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/col_mod = null var/image/current_image = null var/image_layer = MOB_LAYER + var/image_plane = GAME_PLANE var/active = TRUE //qdelery /obj/effect/hallucination/singularity_pull() @@ -123,6 +124,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/simple/proc/GetImage() var/image/I = image(image_icon,src,image_state,image_layer,dir=src.dir) + I.plane = image_plane I.pixel_x = px I.pixel_y = py if(col_mod) @@ -168,7 +170,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( icon_state = "nothing" anchored = TRUE layer = FLY_LAYER - plane = GAME_PLANE + plane = ABOVE_GAME_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT /datum/hallucination/fake_flood @@ -195,7 +197,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/obj/effect/plasma_image_holder/pih = new(center) var/image/plasma_image = image(image_icon, pih, image_state, FLY_LAYER) plasma_image.alpha = 50 - plasma_image.plane = GAME_PLANE + plasma_image.plane = ABOVE_GAME_PLANE flood_images += plasma_image flood_image_holders += pih flood_turfs += center @@ -226,7 +228,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/obj/effect/plasma_image_holder/pih = new(T) var/image/new_plasma = image(image_icon, pih, image_state, FLY_LAYER) new_plasma.alpha = 50 - new_plasma.plane = GAME_PLANE + new_plasma.plane = ABOVE_GAME_PLANE flood_images += new_plasma flood_image_holders += pih flood_turfs += T @@ -790,6 +792,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/fake_door_lock layer = CLOSED_DOOR_LAYER + 1 //for Bump priority + plane = GAME_PLANE var/image/bolt_light var/obj/machinery/door/airlock/airlock diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index f324fbf2cda..624235af823 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -137,3 +137,4 @@ icon = 'icons/obj/3x3.dmi' icon_state = "stand" layer = ABOVE_MOB_LAYER//big mobs will still go over the tent, this is fine and cool + plane = GAME_PLANE_UPPER diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index ea7b95bab55..24fd01cd04f 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -52,6 +52,7 @@ desc = "A resonating field that significantly damages anything inside of it when the field eventually ruptures. More damaging in low pressure environments." icon_state = "shield1" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE duration = 60 SECONDS var/resonance_damage = 20 var/damage_multiplier = 1 @@ -125,6 +126,7 @@ /obj/effect/temp_visual/resonance_crush icon_state = "shield1" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE duration = 4 /obj/effect/temp_visual/resonance_crush/Initialize(mapload) diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm index 81171035567..88124707e21 100644 --- a/code/modules/mining/lavaland/tendril_loot.dm +++ b/code/modules/mining/lavaland/tendril_loot.dm @@ -257,6 +257,7 @@ light_range = 7 light_flags = LIGHT_ATTACHED layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE var/sight_flags = SEE_MOBS var/lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index da7c3f3e82e..538e660a651 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -6,6 +6,7 @@ throw_speed = 3 throw_range = 5 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_BRAIN organ_flags = ORGAN_VITAL diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 7342fb8a1d4..30f8dbaebf2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -9,6 +9,7 @@ bubble_icon = "alienroyal" mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles + plane = GAME_PLANE_UPPER_FOV_HIDDEN pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. butcher_results = list(/obj/item/food/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) @@ -19,6 +20,14 @@ // as a wise man once wrote: "pull over that ass too fat" REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) +/mob/living/carbon/alien/humanoid/royal/on_lying_down(new_lying_angle) + . = ..() + plane = GAME_PLANE_FOV_HIDDEN //So it won't hide smaller mobs. + +/mob/living/carbon/alien/humanoid/royal/on_standing_up(new_lying_angle) + . = ..() + plane = initial(plane) + /mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, target_zone, injection_flags) return FALSE diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 76c89e4717c..bdf8d052c8f 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -22,6 +22,7 @@ tint = 3 flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH layer = MOB_LAYER + plane = GAME_PLANE_FOV_HIDDEN max_integrity = 100 item_flags = XENOMORPH_HOLDABLE var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 4ec23033711..843e37598e8 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -4,7 +4,6 @@ see_in_dark = 2 hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) pressure_resistance = 10 - plane = GAME_PLANE_FOV_HIDDEN hud_type = /datum/hud/living diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index 5f46ec26ef8..858ad7b3d6b 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -396,6 +396,7 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( if(M.client && (!M.client.prefs.read_preference(/datum/preference/toggle/enable_runechat) || (SSlag_switch.measures[DISABLE_RUNECHAT] && !HAS_TRAIT(src, TRAIT_BYPASS_MEASURES)))) speech_bubble_recipients.Add(M.client) var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) + I.plane = ABOVE_GAME_PLANE I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_recipients, 30) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index b3eb58b4875..8aadc3f9493 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -218,4 +218,4 @@ icon_state = "" alpha = 100 layer = ABOVE_ALL_MOB_LAYER - plane = GAME_PLANE + plane = ABOVE_GAME_PLANE diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 43d995bbdc4..2af326b024f 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -13,7 +13,7 @@ desc = "A generic pAI mobile hard-light holographics emitter. It seems to be deactivated." health = 500 maxHealth = 500 - layer = BELOW_MOB_LAYER + layer = LOW_MOB_LAYER can_be_held = TRUE move_force = 0 pull_force = 0 diff --git a/code/modules/mob/living/simple_animal/bot/hygienebot.dm b/code/modules/mob/living/simple_animal/bot/hygienebot.dm index a73b0e7ffc4..802a1aa50ac 100644 --- a/code/modules/mob/living/simple_animal/bot/hygienebot.dm +++ b/code/modules/mob/living/simple_animal/bot/hygienebot.dm @@ -6,7 +6,7 @@ icon_state = "hygienebot" base_icon_state = "hygienebot" pass_flags = PASSMOB | PASSFLAPS | PASSTABLE - layer = ABOVE_MOB_LAYER + layer = MOB_UPPER_LAYER density = FALSE anchored = FALSE health = 100 diff --git a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm index 36319ae0b90..0f560347270 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm @@ -2,6 +2,7 @@ /obj/effect/ebeam/chain name = "lightning chain" layer = LYING_MOB_LAYER + plane = GAME_PLANE_FOV_HIDDEN /mob/living/simple_animal/hostile/guardian/beam melee_damage_lower = 7 diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 9c33f8ba0be..d893eafa2ec 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -172,6 +172,7 @@ name = "scattering paper" desc = "Pieces of paper scattering to the wind." layer = ABOVE_OPEN_TURF_LAYER + plane = GAME_PLANE icon = 'icons/effects/effects.dmi' icon_state = "paper_scatter" anchored = TRUE @@ -182,6 +183,7 @@ name = "craft portal" desc = "A wormhole sucking the wizard into the void. Neat." layer = ABOVE_OPEN_TURF_LAYER + plane = GAME_PLANE icon = 'icons/effects/effects.dmi' icon_state = "paperwiz_poof" anchored = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index 52be7fa3133..e67eaa3ae19 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -20,6 +20,7 @@ pixel_x = -16 base_pixel_x = -16 layer = LARGE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN speed = 10 stat_attack = HARD_CRIT robust_searching = 1 @@ -59,6 +60,7 @@ icon = 'icons/obj/guns/projectiles.dmi' icon_state = "leaper_bubble_pop" layer = ABOVE_ALL_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN duration = 3 /obj/effect/temp_visual/leaper_projectile_impact/Initialize(mapload) @@ -136,6 +138,7 @@ icon = 'icons/effects/96x96.dmi' icon_state = "lily_pad" layer = BELOW_MOB_LAYER + plane = GAME_PLANE pixel_x = -32 base_pixel_x = -32 pixel_y = -32 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm index ddd212883af..5f8c7f19491 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -220,6 +220,7 @@ icon = 'icons/mob/jungle/mook.dmi' icon_state = "mook_leap_cloud" layer = BELOW_MOB_LAYER + plane = GAME_PLANE pixel_x = -16 base_pixel_x = -16 pixel_y = -16 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm index 37354b56633..ac760978678 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm @@ -25,6 +25,7 @@ pull_force = MOVE_FORCE_OVERPOWERING mob_size = MOB_SIZE_HUGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise + plane = GAME_PLANE_UPPER_FOV_HIDDEN mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway flags_1 = PREVENT_CONTENTS_EXPLOSION_1 /// Crusher loot dropped when the megafauna is killed with a crusher 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 90c8208a400..2249882b095 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -378,10 +378,12 @@ Difficulty: Hard /obj/effect/temp_visual/bubblegum_hands/rightpaw icon_state = "rightpawgrab" layer = BELOW_MOB_LAYER + plane = GAME_PLANE /obj/effect/temp_visual/bubblegum_hands/leftpaw icon_state = "leftpawgrab" layer = BELOW_MOB_LAYER + plane = GAME_PLANE /obj/effect/temp_visual/bubblegum_hands/rightsmack icon_state = "rightsmack" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 8eb7bc7fbc6..23132c82662 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -154,6 +154,7 @@ icon = 'icons/effects/effects.dmi' icon_state = "at_shield2" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE light_system = MOVABLE_LIGHT light_range = 2 duration = 8 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 1b38d1dc68b..69c3ed7db93 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -233,6 +233,7 @@ /obj/effect/temp_visual/lava_warning icon_state = "lavastaff_warn" layer = BELOW_MOB_LAYER + plane = GAME_PLANE light_range = 2 duration = 13 var/mob/owner @@ -291,6 +292,7 @@ name = "fireball" desc = "Get out of the way!" layer = FLY_LAYER + plane = ABOVE_GAME_PLANE randomdir = FALSE duration = 9 pixel_z = 270 @@ -303,6 +305,7 @@ icon = 'icons/mob/actions/actions_items.dmi' icon_state = "sniper_zoom" layer = BELOW_MOB_LAYER + plane = GAME_PLANE light_range = 2 duration = 9 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 b3cbdf65e7b..dd550099053 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -507,6 +507,7 @@ Difficulty: Hard /obj/effect/temp_visual/hierophant name = "vortex energy" layer = BELOW_MOB_LAYER + plane = GAME_PLANE var/mob/living/caster //who made this, anyway /obj/effect/temp_visual/hierophant/Initialize(mapload, new_caster) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 0073cb1a64a..1dea25d1ec0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -23,6 +23,7 @@ environment_smash = ENVIRONMENT_SMASH_NONE sentience_type = SENTIENCE_BOSS layer = LARGE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN var/mob/living/set_target var/datum/move_loop/has_target/force_move/our_loop 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 089a578500f..4f1f109afd8 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 @@ -18,6 +18,7 @@ harm_intent_damage = 0 //Punching elites gets you nowhere stat_attack = HARD_CRIT layer = LARGE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN sentience_type = SENTIENCE_BOSS var/chosen_attack = 1 var/list/attack_action_types = list() @@ -361,6 +362,7 @@ While using this makes the system rely on OnFire, it still gives options for tim canSmoothWith = list(SMOOTH_GROUP_HIERO_WALL) duration = 50 layer = BELOW_MOB_LAYER + plane = GAME_PLANE color = rgb(255,0,0) light_range = MINIMUM_USEFUL_LIGHT_RANGE light_color = COLOR_SOFT_RED diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index ed134f0f631..b94d833e683 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -183,6 +183,7 @@ icon = 'icons/mob/lavaland/lavaland_monsters.dmi' icon_state = "Goliath_tentacle_spawn" layer = BELOW_MOB_LAYER + plane = GAME_PLANE var/mob/living/spawner /obj/effect/temp_visual/goliath_tentacle/Initialize(mapload, mob/living/new_spawner) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 0da10a35c4e..39bb55b1bbf 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -16,6 +16,7 @@ icon = 'icons/effects/spacevines.dmi' icon_state = "bud0" layer = SPACEVINE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN opacity = FALSE canSmoothWith = null smoothing_flags = NONE @@ -107,6 +108,7 @@ health_doll_icon = "venus_human_trap" mob_biotypes = MOB_ORGANIC | MOB_PLANT layer = SPACEVINE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN health = 50 maxHealth = 50 ranged = TRUE diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 6f51015fa5c..286a27fbd00 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -10,6 +10,7 @@ datum_flags = DF_USE_TAG density = TRUE layer = MOB_LAYER + plane = GAME_PLANE_FOV_HIDDEN animate_movement = SLIDE_STEPS hud_possible = list(ANTAG_HUD) pressure_resistance = 8 diff --git a/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm b/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm index 0e34260a074..2d390a1b560 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm @@ -18,6 +18,7 @@ mouse_opacity = MOUSE_OPACITY_ICON//So you can hit it with stuff. anchored = TRUE//Can't drag/grab the net. layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE max_integrity = 60 //How much health it has. can_buckle = 1 buckle_lying = 0 diff --git a/code/modules/plumbing/plumbers/bottler.dm b/code/modules/plumbing/plumbers/bottler.dm index 3f5a90c4ba1..fadbcbd9a4b 100644 --- a/code/modules/plumbing/plumbers/bottler.dm +++ b/code/modules/plumbing/plumbers/bottler.dm @@ -3,6 +3,7 @@ desc = "Puts reagents into containers, like bottles and beakers in the tile facing the green light spot, they will exit on the red light spot if successfully filled." icon_state = "bottler" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE reagent_flags = TRANSPARENT | DRAINABLE buffer = 100 diff --git a/code/modules/plumbing/plumbers/fermenter.dm b/code/modules/plumbing/plumbers/fermenter.dm index c2f0779744e..73f2d330495 100644 --- a/code/modules/plumbing/plumbers/fermenter.dm +++ b/code/modules/plumbing/plumbers/fermenter.dm @@ -3,6 +3,7 @@ desc = "Turns plants into various types of booze." icon_state = "fermenter" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE reagent_flags = TRANSPARENT | DRAINABLE buffer = 400 diff --git a/code/modules/plumbing/plumbers/grinder_chemical.dm b/code/modules/plumbing/plumbers/grinder_chemical.dm index aff33880acf..b8a2f6d0676 100644 --- a/code/modules/plumbing/plumbers/grinder_chemical.dm +++ b/code/modules/plumbing/plumbers/grinder_chemical.dm @@ -3,6 +3,7 @@ desc = "chemical grinder." icon_state = "grinder_chemical" layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE reagent_flags = TRANSPARENT | DRAINABLE buffer = 400 diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index d31e279e245..7691585b39e 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -173,6 +173,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne if(count <= 3) // Their sprite is the top part of the generator part.set_density(FALSE) part.layer = WALL_OBJ_LAYER + part.plane = GAME_PLANE_UPPER part.sprite_number = count part.main_part = src parts += part diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index e17a015cf1d..ef82373de0b 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -5,6 +5,7 @@ icon_state = "tube" desc = "A lighting fixture." layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER max_integrity = 100 use_power = ACTIVE_POWER_USE idle_power_usage = 2 diff --git a/code/modules/power/lighting/light_construct.dm b/code/modules/power/lighting/light_construct.dm index 2b65c75c87d..a2255d5e587 100644 --- a/code/modules/power/lighting/light_construct.dm +++ b/code/modules/power/lighting/light_construct.dm @@ -5,6 +5,7 @@ icon_state = "tube-construct-stage1" anchored = TRUE layer = WALL_OBJ_LAYER + plane = GAME_PLANE_UPPER max_integrity = 200 armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 50) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 73f60256405..2441cdcf41e 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -35,6 +35,7 @@ panel.icon = icon panel.icon_state = "solar_panel" panel.layer = FLY_LAYER + panel.plane = ABOVE_GAME_PLANE Make(S) connect_to_network() RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/queue_update_solar_exposure) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 8b015107892..f6401e52231 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -1179,6 +1179,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) gasefficency = 0.125 explosion_power = 12 layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER moveable = TRUE psyOverlay = /obj/overlay/psy/shard diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 05f254d1820..b04d0fc659f 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,6 +13,7 @@ wound_bonus = CANT_WOUND // can't wound by default generic_canpass = FALSE blocks_emissive = EMISSIVE_BLOCK_GENERIC + layer = MOB_LAYER plane = GAME_PLANE_FOV_HIDDEN //The sound this plays on impact. var/hitsound = 'sound/weapons/pierce.ogg' diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 5a9a5d9eb82..335064ec0af 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -1,6 +1,7 @@ /obj/effect/ebeam/curse_arm name = "curse arm" layer = LARGE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN /obj/projectile/curse_hand name = "curse hand" @@ -8,6 +9,7 @@ base_icon_state = "cursehand" hitsound = 'sound/effects/curse4.ogg' layer = LARGE_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN damage_type = BURN damage = 10 paralyze = 20 diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index ebca994c6ce..2365ce5ec15 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -474,7 +474,6 @@ dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP // magical mystery temperature of 274.5, where ice does not melt, and water does not freeze amount = 10 pixel_y = 6 - layer = WALL_OBJ_LAYER circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks working_state = null nopower_state = null diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm index 47ab67cedd7..edc0c48e624 100644 --- a/code/modules/research/bepis.dm +++ b/code/modules/research/bepis.dm @@ -17,6 +17,7 @@ base_icon_state = "chamber" density = TRUE layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER use_power = IDLE_POWER_USE active_power_usage = 1500 circuit = /obj/item/circuitboard/machine/bepis diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm index cf8df80b34f..f868504a626 100644 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm @@ -5,6 +5,7 @@ max_integrity = 120 impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least layer = ABOVE_ALL_MOB_LAYER + plane = ABOVE_GAME_PLANE custom_materials = list(/datum/material/bone=MINERAL_MATERIAL_AMOUNT*5) abstract_type = /obj/structure/statue/bone diff --git a/code/modules/ruins/lavalandruin_code/surface.dm b/code/modules/ruins/lavalandruin_code/surface.dm index 72896c08a34..ca0a90639da 100644 --- a/code/modules/ruins/lavalandruin_code/surface.dm +++ b/code/modules/ruins/lavalandruin_code/surface.dm @@ -14,6 +14,7 @@ flags_1 = ON_BORDER_1 appearance_flags = 0 layer = FLY_LAYER + plane = ABOVE_GAME_PLANE anchored = TRUE density = TRUE bound_width = 416 diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index 49a1fefa40c..e2d8ce268f9 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -84,6 +84,7 @@ icon = 'icons/effects/96x96.dmi' icon_state = "gate_blocker" layer = EDGED_TURF_LAYER + plane = GAME_PLANE_UPPER pixel_x = -32 pixel_y = -32 mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/modules/shuttle/ripple.dm b/code/modules/shuttle/ripple.dm index 4bf6eac0ebe..d69bce3de54 100644 --- a/code/modules/shuttle/ripple.dm +++ b/code/modules/shuttle/ripple.dm @@ -8,6 +8,7 @@ anchored = TRUE density = FALSE layer = RIPPLE_LAYER + plane = ABOVE_GAME_PLANE mouse_opacity = MOUSE_OPACITY_ICON alpha = 0 diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 06740b3f240..977bc6337d9 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -173,7 +173,9 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE) /obj/machinery/bsa/full/Initialize(mapload, cannon_direction = WEST) . = ..() - top_layer = top_layer || mutable_appearance(icon, layer = ABOVE_MOB_LAYER) + if(!top_layer) + top_layer = mutable_appearance(icon, layer = ABOVE_MOB_LAYER) + top_layer.plane = GAME_PLANE_UPPER switch(cannon_direction) if(WEST) setDir(WEST) diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index e4a70786cff..ffa1143d65e 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -5,6 +5,7 @@ icon_state = "fuckyou" max_integrity = 300 armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 60, ACID = 60) + layer = VEHICLE_LAYER plane = GAME_PLANE_FOV_HIDDEN density = TRUE anchored = FALSE diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index 26329439ad3..86a5cd35320 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -51,18 +51,22 @@ turret.pixel_x = base_pixel_x turret.pixel_y = base_pixel_y + 4 turret.layer = ABOVE_MOB_LAYER + turret.plane = GAME_PLANE_UPPER if(EAST) turret.pixel_x = base_pixel_x - 12 turret.pixel_y = base_pixel_y + 4 turret.layer = OBJ_LAYER + turret.plane = GAME_PLANE if(SOUTH) turret.pixel_x = base_pixel_x turret.pixel_y = base_pixel_y + 4 turret.layer = OBJ_LAYER + turret.plane = GAME_PLANE if(WEST) turret.pixel_x = base_pixel_x + 12 turret.pixel_y = base_pixel_y + 4 turret.layer = OBJ_LAYER + turret.plane = GAME_PLANE /obj/vehicle/ridden/atv/welder_act(mob/living/user, obj/item/I) if(atom_integrity >= max_integrity) diff --git a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm index eb03af7b1f2..b8c082f0587 100644 --- a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm +++ b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm @@ -138,7 +138,8 @@ phasing = "flying" movedelay = 1 density = FALSE - layer = FLY_LAYER + layer = ABOVE_ALL_MOB_LAYER + plane = GAME_PLANE_UPPER_FOV_HIDDEN animate(src, alpha = 0, time = 8, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) animate(src, pixel_z = 400, time = 10, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) //Animate our rising mech (just like pods hehe) addtimer(CALLBACK(src, .proc/begin_landing, pilot), 2 SECONDS) @@ -173,6 +174,7 @@ movedelay = initial(movedelay) density = TRUE layer = initial(layer) + plane = initial(plane) skyfall_charge_level = 0 update_icon_state() for(var/mob/living/shaken in range(7, src)) diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index ae0fe88ff87..c7b319053bc 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -18,7 +18,7 @@ /obj/vehicle/ridden/wheelchair/Initialize(mapload) . = ..() make_ridable() - wheels_overlay = image(icon, overlay_icon, FLY_LAYER) + wheels_overlay = image(icon, overlay_icon, ABOVE_MOB_LAYER) ADD_TRAIT(src, TRAIT_NO_IMMOBILIZE, INNATE_TRAIT) AddComponent(/datum/component/simple_rotation) //Since it's technically a chair I want it to have chair properties diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 8898dd861fc..c4448fc798e 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -537,6 +537,7 @@ GLOBAL_LIST_EMPTY(vending_products) visible_message(span_danger("[src] tips over!")) tilted = TRUE layer = ABOVE_MOB_LAYER + plane = GAME_PLANE_UPPER var/crit_case if(crit) @@ -651,6 +652,7 @@ GLOBAL_LIST_EMPTY(vending_products) tilted = FALSE layer = initial(layer) + plane = initial(plane) var/matrix/M = matrix() M.Turn(0)