From 7d3aec96fdbb62492b2341f667c0f7dd98a2aaa9 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 28 Mar 2018 15:59:12 -0400 Subject: [PATCH] Arranges lots of things into planes (#5072) * Rearranges a billion things into planes * Make cryotubes fancy * Update Travis * Fix hiding logic --- .travis.yml | 4 +- code/ATMOSPHERICS/atmospherics.dm | 3 +- .../components/unary/outlet_injector.dm | 1 - code/ATMOSPHERICS/mainspipe.dm | 3 +- code/ATMOSPHERICS/pipes/cap.dm | 1 - code/__defines/_planes+layers.dm | 69 +++++++++++----- code/__defines/lighting.dm | 1 - code/__defines/mobs.dm | 2 +- code/_onclick/hud/alien_larva.dm | 2 +- code/_onclick/hud/hud.dm | 5 -- code/_onclick/hud/other_mobs.dm | 14 ++-- code/_onclick/hud/robot.dm | 12 +-- code/_onclick/telekinesis.dm | 2 +- code/controllers/Processes/planet.dm | 3 +- .../emergency_shuttle_controller.dm | 3 +- code/game/antagonist/antagonist_update.dm | 4 +- code/game/area/Space Station 13 areas.dm | 76 ------------------ code/game/area/areas.dm | 76 +++++++++++++++++- code/game/atoms.dm | 2 +- code/game/atoms_movable.dm | 2 +- .../endgame/supermatter_cascade/portal.dm | 5 +- code/game/machinery/Beacon.dm | 2 +- code/game/machinery/ai_slipper.dm | 1 - code/game/machinery/camera/camera.dm | 3 +- code/game/machinery/computer3/lapvend.dm | 1 - code/game/machinery/cryo.dm | 69 +++++++++------- code/game/machinery/holosign.dm | 2 +- code/game/machinery/kitchen/icecream.dm | 1 - code/game/machinery/kitchen/microwave.dm | 1 - code/game/machinery/kitchen/smartfridge.dm | 1 - code/game/machinery/machinery.dm | 1 + code/game/machinery/magnet.dm | 3 +- code/game/machinery/navbeacon.dm | 3 +- code/game/machinery/overview.dm | 4 +- code/game/machinery/vending.dm | 1 - code/game/mecha/combat/gorilla.dm | 2 +- code/game/mecha/mech_sensor.dm | 2 +- code/game/objects/effects/alien/aliens.dm | 5 +- code/game/objects/effects/chem/chemsmoke.dm | 2 +- .../objects/effects/decals/Cleanable/fuel.dm | 2 +- .../effects/decals/Cleanable/humans.dm | 4 +- .../objects/effects/decals/Cleanable/misc.dm | 15 +--- code/game/objects/effects/decals/cleanable.dm | 1 + code/game/objects/effects/decals/crayon.dm | 2 +- code/game/objects/effects/decals/misc.dm | 4 +- .../objects/effects/decals/warning_stripes.dm | 1 - code/game/objects/effects/misc.dm | 3 +- code/game/objects/effects/overlays.dm | 19 +++-- code/game/objects/effects/spiders.dm | 2 +- code/game/objects/items/shooting_range.dm | 1 - .../objects/items/weapons/id cards/cards.dm | 1 - code/game/objects/items/weapons/policetape.dm | 9 ++- code/game/objects/items/weapons/tape.dm | 2 +- code/game/objects/items/weapons/trays.dm | 2 +- code/game/objects/objs.dm | 2 + code/game/objects/structures/bedsheet_bin.dm | 7 +- code/game/objects/structures/girders.dm | 2 +- code/game/objects/structures/gravemarker.dm | 2 +- code/game/objects/structures/grille.dm | 2 +- code/game/objects/structures/lattice.dm | 2 +- code/game/objects/structures/morgue.dm | 2 +- code/game/objects/structures/railing.dm | 2 +- code/game/objects/structures/safe.dm | 3 +- code/game/objects/structures/signs.dm | 2 +- .../structures/stool_bed_chair_nest/chairs.dm | 6 +- code/game/objects/structures/target_stake.dm | 2 +- code/game/objects/structures/transit_tubes.dm | 2 +- code/game/objects/structures/window.dm | 4 +- code/game/supplyshuttle.dm | 3 +- code/game/turfs/flooring/flooring_decals.dm | 2 +- code/game/turfs/simulated/floor_icon.dm | 2 +- code/game/turfs/simulated/walls.dm | 2 +- code/game/turfs/turf.dm | 2 + code/game/turfs/unsimulated/shuttle.dm | 1 - code/modules/admin/admin.dm | 1 + code/modules/blob2/blobs/base_blob.dm | 3 +- code/modules/flufftext/Hallucination.dm | 2 +- .../hydroponics/spreading/spreading.dm | 5 +- code/modules/lighting/lighting_overlay.dm | 1 - code/modules/mob/dead/observer/observer.dm | 2 +- code/modules/mob/hear_say.dm | 5 -- code/modules/mob/holder.dm | 1 - .../living/carbon/alien/diona/diona_powers.dm | 2 - code/modules/mob/living/carbon/human/human.dm | 5 +- .../mob/living/carbon/human/human_powers.dm | 17 ---- .../carbon/human/species/station/seromi.dm | 2 +- .../mob/living/carbon/metroid/metroid.dm | 3 +- code/modules/mob/living/living.dm | 2 - code/modules/mob/living/living_powers.dm | 11 ++- code/modules/mob/living/say.dm | 7 +- .../mob/living/simple_animal/borer/borer.dm | 3 - .../simple_animal/borer/borer_powers.dm | 1 - code/modules/mob/mob_defines.dm | 3 +- code/modules/mob/mob_grab.dm | 7 +- code/modules/mob/mob_planes.dm | 1 - code/modules/paperwork/paper.dm | 3 +- code/modules/paperwork/paper_bundle.dm | 3 +- code/modules/power/fusion/core/core_field.dm | 3 +- .../fusion/fuel_assembly/fuel_assembly.dm | 1 - .../fusion/fuel_assembly/fuel_compressor.dm | 1 - code/modules/power/lighting.dm | 10 ++- code/modules/power/sensors/powernet_sensor.dm | 2 +- code/modules/power/singularity/singularity.dm | 2 +- code/modules/power/terminal.dm | 4 +- code/modules/projectiles/effects.dm | 2 +- code/modules/reagents/Chemistry-Machinery.dm | 1 - code/modules/recycling/conveyor2.dm | 3 +- code/modules/recycling/disposal.dm | 2 +- code/modules/shieldgen/energy_field.dm | 3 +- .../spells/aoe_turf/conjure/conjure.dm | 3 +- .../modules/spells/targeted/ethereal_jaunt.dm | 3 +- code/modules/tables/flipping.dm | 5 +- code/modules/tables/tables.dm | 2 +- code/modules/turbolift/turbolift_console.dm | 2 +- code/modules/ventcrawl/ventcrawl.dm | 3 +- .../xenoarcheaology/artifacts/gigadrill.dm | 2 +- icons/obj/cryogenics_split.dmi | Bin 5537 -> 3328 bytes maps/RandomZLevels/wildwest.dm | 3 +- 118 files changed, 336 insertions(+), 325 deletions(-) diff --git a/.travis.yml b/.travis.yml index c58b11584f..754b84c374 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,8 @@ sudo: false env: global: - - BYOND_MAJOR="511" - - BYOND_MINOR="1381" + - BYOND_MAJOR="512" + - BYOND_MINOR="1414" - MACRO_COUNT=4 matrix: - TEST_DEFINE="MAP_TEST" TEST_FILE="code/_map_tests.dm" RUN="0" diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 59163e1b82..8e4ffc46cc 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -17,7 +17,8 @@ Pipelines + Other Objects -> Pipe network var/nodealert = 0 var/power_rating //the maximum amount of power the machine can use to do work, affects how powerful the machine is, in Watts - layer = 2.4 //under wires with their 2.44 + layer = PIPES_LAYER + plane = PLATING_PLANE var/connect_types = CONNECT_TYPE_REGULAR var/icon_connect_type = "" //"-supply" or "-scrubbers" diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index 7c52cea895..269d2f76c6 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -5,7 +5,6 @@ /obj/machinery/atmospherics/unary/outlet_injector icon = 'icons/atmos/injector.dmi' icon_state = "map_injector" - layer = 3 name = "air injector" desc = "Passively injects air into its surroundings. Has a valve attached to it that can control flow rate." diff --git a/code/ATMOSPHERICS/mainspipe.dm b/code/ATMOSPHERICS/mainspipe.dm index 1b0c617564..b03854418b 100644 --- a/code/ATMOSPHERICS/mainspipe.dm +++ b/code/ATMOSPHERICS/mainspipe.dm @@ -34,7 +34,8 @@ obj/machinery/atmospherics/pipe/mains_component obj/machinery/atmospherics/mains_pipe icon = 'icons/obj/atmospherics/mainspipe.dmi' - layer = 2.4 //under wires with their 2.5 + layer = PIPES_LAYER + plane = PLATING_PLANE var/volume = 0 diff --git a/code/ATMOSPHERICS/pipes/cap.dm b/code/ATMOSPHERICS/pipes/cap.dm index de81c60200..2d74a713c2 100644 --- a/code/ATMOSPHERICS/pipes/cap.dm +++ b/code/ATMOSPHERICS/pipes/cap.dm @@ -7,7 +7,6 @@ icon = 'icons/atmos/pipes.dmi' icon_state = "" level = 2 - layer = 2.4 //under wires with their 2.44 volume = 35 diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index 7370e10235..7c964fb867 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -44,37 +44,68 @@ What is the naming convention for planes or layers? #define PLANE_ADMIN2 -91 //And adminbuse #define PLANE_ADMIN3 -90 //And generating salt -#define SPACE_PLANE -32 // Reserved for use in space/parallax -#define PARALLAX_PLANE -30 // Reserved for use in space/parallax +#define SPACE_PLANE -82 // Reserved for use in space/parallax +#define PARALLAX_PLANE -80 // Reserved for use in space/parallax // OPENSPACE_PLANE reserves all planes between OPENSPACE_PLANE_START and OPENSPACE_PLANE_END inclusive -#define OPENSPACE_PLANE -55 // /turf/simulated/open will use OPENSPACE_PLANE + z (Valid z's being 2 thru 17) -#define OPENSPACE_PLANE_START -53 -#define OPENSPACE_PLANE_END -38 -#define OVER_OPENSPACE_PLANE -37 +#define OPENSPACE_PLANE -75 // /turf/simulated/open will use OPENSPACE_PLANE + z (Valid z's being 2 thru 17) +#define OPENSPACE_PLANE_START -73 +#define OPENSPACE_PLANE_END -58 +#define OVER_OPENSPACE_PLANE -57 + +// Turf Planes +#define SPACE_PLANE -43 // Space turfs themselves +#define PLATING_PLANE -44 // Plating + #define DISPOSAL_LAYER 2.1 // Under objects, even when planeswapped + #define WIRES_LAYER 2.2 // Under objects, even when planeswapped + #define PIPES_LAYER 2.3 // Under objects, even when planeswapped + #define ABOVE_UTILITY 2.5 // Above stuff like pipes and wires +#define TURF_PLANE -45 // Turfs themselves, most flooring + #define ABOVE_TURF_LAYER 2.1 // Snow and such +#define DECAL_PLANE -44 // Permanent decals +#define DIRTY_PLANE -43 // Nonpermanent decals +#define BLOOD_PLANE -42 // Blood is really dirty, but we can do special stuff if we separate it + +// Obj planes +#define OBJ_PLANE -35 + #define HIDING_LAYER 2.6 // Layer at which mobs hide to be under things like tables + #define DOOR_OPEN_LAYER 2.7 // Under all objects if opened. 2.7 due to tables being at 2.6 + #define UNDER_JUNK_LAYER 2.9 // Things that want to be slightly below common objects + // Turf/Obj layer boundary + #define ABOVE_JUNK_LAYER 3.1 // Things that want to be slightly above common objects + #define DOOR_CLOSED_LAYER 3.1 // Doors when closed + #define WINDOW_LAYER 3.2 // Windows + #define ON_WINDOW_LAYER 3.3 // Ontop of a window + #define SHOWER_OPEN_LAYER 3.4 // Showers when open + // Obj/Mob layer boundary + #define SHOWER_CLOSED_LAYER 4.2 // Should be converted to plane swaps + +// Mob planes +#define MOB_PLANE -25 + #define BELOW_MOB_LAYER 3.9 // Should be converted to plane swaps + #define ABOVE_MOB_LAYER 4.1 // Should be converted to plane swaps + +// Top plane (in the sense that it's the highest in 'the world' and not a UI element) +#define ABOVE_PLANE -10 //////////////////////////////////////////////////////////////////////////////////////// #define PLANE_WORLD 0 // BYOND's default value for plane, the "base plane" //////////////////////////////////////////////////////////////////////////////////////// + //#define AREA_LAYER 1 //For easy recordkeeping; this is a byond define + //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define - #define DECALS_LAYER 2.01 - #define OVERTURF_LAYER 2.1 - #define HIDING_LAYER 2.45 //Layer at which mobs hide to be under things like tables - #define DOOR_OPEN_LAYER 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6 + //#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define - #define DOOR_CLOSED_LAYER 3.1 //Above most items if closed - #define SHOWER_OPEN_LAYER 3.4 - #define BELOW_MOB_LAYER 3.9 + //#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define - #define ABOVE_MOB_LAYER 4.1 - #define SHOWER_CLOSED_LAYER 4.2 - + //#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define - #define LIGHTING_LAYER 11 //Layer that lighting used to be on (now it's on a plane) - #define HUD_LAYER 20 //Above lighting, but below obfuscation. For in-game HUD effects (whereas SCREEN_LAYER is for abstract/OOC things like inventory slots) - #define SCREEN_LAYER 22 //Mob HUD/effects layer + #define HUD_LAYER 20 // Above lighting, but below obfuscation. For in-game HUD effects (whereas SCREEN_LAYER is for abstract/OOC things like inventory slots) + #define SCREEN_LAYER 22 // Mob HUD/effects layer + +#define PLANE_PLANETLIGHTING 4 //Lighting on planets #define PLANE_LIGHTING 5 //Where the lighting (and darkness) lives #define PLANE_LIGHTING_ABOVE 6 //For glowy eyes etc. that shouldn't be affected by darkness diff --git a/code/__defines/lighting.dm b/code/__defines/lighting.dm index 6b05896b8d..00e473fc2a 100644 --- a/code/__defines/lighting.dm +++ b/code/__defines/lighting.dm @@ -9,7 +9,6 @@ #define LIGHTING_LAMBERTIAN 0 // use lambertian shading for light sources #define LIGHTING_HEIGHT 1 // height off the ground of light sources on the pseudo-z-axis, you should probably leave this alone -//#define LIGHTING_LAYER 10 // drawing layer for lighting overlays #define LIGHTING_ICON 'icons/effects/lighting_overlay.dmi' // icon used for lighting shading effects #define LIGHTING_ICON_STATE_DARK "soft_dark" // Change between "soft_dark" and "dark" to swap soft darkvision diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index bb17deacf4..18c8cb1ca7 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -9,7 +9,7 @@ #define CANPARALYSE 0x4 #define CANPUSH 0x8 #define LEAPING 0x10 -#define HIDING 0x20 +#define HIDING 0x20 #define PASSEMOTES 0x40 // Mob has a cortical borer or holders inside of it that need to see emotes. #define GODMODE 0x1000 #define FAKEDEATH 0x2000 // Replaces stuff like changeling.changeling_fakedeath. diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 1f0df80141..2ec9da3b27 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -11,7 +11,7 @@ using.icon = 'icons/mob/screen1_alien.dmi' using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_acti - using.layer = 20 + using.layer = HUD_LAYER src.adding += using move_intent = using diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index f015976c32..c63519c40f 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -49,7 +49,6 @@ var/list/global_huds = list( /obj/screen/global_screen screen_loc = ui_entire_screen - layer = 17 plane = PLANE_FULLSCREEN mouse_opacity = 0 @@ -72,7 +71,6 @@ var/list/global_huds = list( darksight.icon = null darksight.screen_loc = "1,1" darksight.plane = PLANE_LIGHTING - darksight.plane = LIGHTING_LAYER + 0.1 //Marks the center of the screen, for things like ventcrawl centermarker = new /obj/screen() @@ -125,20 +123,17 @@ var/list/global_huds = list( for(i = 1, i <= 4, i++) O = vimpaired[i] O.icon_state = "dither50" - O.layer = 17 O.plane = PLANE_FULLSCREEN O.mouse_opacity = 0 O = darkMask[i] O.icon_state = "dither50" - O.layer = 17 O.plane = PLANE_FULLSCREEN O.mouse_opacity = 0 for(i = 5, i <= 8, i++) O = darkMask[i] O.icon_state = "black" - O.layer = 17 O.plane = PLANE_FULLSCREEN O.mouse_opacity = 2 diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm index cab3e3bfca..325a4a4b7e 100644 --- a/code/_onclick/hud/other_mobs.dm +++ b/code/_onclick/hud/other_mobs.dm @@ -11,13 +11,13 @@ blobpwrdisplay.name = "blob power" blobpwrdisplay.icon_state = "block" blobpwrdisplay.screen_loc = ui_health - blobpwrdisplay.layer = 20 + blobpwrdisplay.layer = HUD_LAYER blobhealthdisplay = new /obj/screen() blobhealthdisplay.name = "blob health" blobhealthdisplay.icon_state = "block" blobhealthdisplay.screen_loc = ui_internal - blobhealthdisplay.layer = 20 + blobhealthdisplay.layer = HUD_LAYER mymob.client.screen = list() @@ -36,7 +36,7 @@ using.icon = ui_style using.icon_state = "intent_"+mymob.a_intent using.screen_loc = ui_zonesel - using.layer = 20 + using.layer = HUD_LAYER src.adding += using action_intent = using @@ -50,7 +50,7 @@ using.name = "help" using.icon = ico using.screen_loc = ui_zonesel - using.layer = 21 + using.layer = HUD_LAYER+0.01 src.adding += using help_intent = using @@ -61,7 +61,7 @@ using.name = "disarm" using.icon = ico using.screen_loc = ui_zonesel - using.layer = 21 + using.layer = HUD_LAYER+0.01 src.adding += using disarm_intent = using @@ -72,7 +72,7 @@ using.name = "grab" using.icon = ico using.screen_loc = ui_zonesel - using.layer = 21 + using.layer = HUD_LAYER+0.01 src.adding += using grab_intent = using @@ -83,7 +83,7 @@ using.name = I_HURT using.icon = ico using.screen_loc = ui_zonesel - using.layer = 21 + using.layer = HUD_LAYER+0.01 src.adding += using hurt_intent = using diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 8a6bb736f5..dc414df11f 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -30,7 +30,7 @@ var/obj/screen/robot_inventory using.alpha = ui_alpha using.icon_state = "radio" using.screen_loc = ui_movi - using.layer = 20 + using.layer = HUD_LAYER src.adding += using //Module select @@ -43,7 +43,7 @@ var/obj/screen/robot_inventory using.alpha = ui_alpha using.icon_state = "inv1" using.screen_loc = ui_inv1 - using.layer = 20 + using.layer = HUD_LAYER src.adding += using mymob:inv1 = using @@ -55,7 +55,7 @@ var/obj/screen/robot_inventory using.alpha = ui_alpha using.icon_state = "inv2" using.screen_loc = ui_inv2 - using.layer = 20 + using.layer = HUD_LAYER src.adding += using mymob:inv2 = using @@ -67,7 +67,7 @@ var/obj/screen/robot_inventory using.alpha = ui_alpha using.icon_state = "inv3" using.screen_loc = ui_inv3 - using.layer = 20 + using.layer = HUD_LAYER src.adding += using mymob:inv3 = using @@ -81,7 +81,7 @@ var/obj/screen/robot_inventory using.alpha = ui_alpha using.icon_state = mymob.a_intent using.screen_loc = ui_acti - using.layer = 20 + using.layer = HUD_LAYER src.adding += using action_intent = using @@ -119,7 +119,7 @@ var/obj/screen/robot_inventory using.icon_state = "panel" using.alpha = ui_alpha using.screen_loc = ui_borg_panel - using.layer = 19 + using.layer = HUD_LAYER-0.01 src.adding += using //Store diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index f08727abf3..26c1680421 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -68,7 +68,7 @@ var/const/tk_maxrange = 15 flags = NOBLUDGEON //item_state = null w_class = ITEMSIZE_NO_CONTAINER - layer = 20 + layer = HUD_LAYER var/last_throw = 0 var/atom/movable/focus = null diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm index f9fd57f788..e39b5e81b8 100644 --- a/code/controllers/Processes/planet.dm +++ b/code/controllers/Processes/planet.dm @@ -47,7 +47,8 @@ var/datum/controller/process/planet/planet_controller = null //Weather style needs redrawing if(P.needs_work & PLANET_PROCESS_WEATHER) P.needs_work &= ~PLANET_PROCESS_WEATHER - var/image/new_overlay = image(icon = P.weather_holder.current_weather.icon, icon_state = P.weather_holder.current_weather.icon_state, layer = LIGHTING_LAYER - 1) + var/image/new_overlay = image(icon = P.weather_holder.current_weather.icon, icon_state = P.weather_holder.current_weather.icon_state) + new_overlay.plane = PLANE_PLANETLIGHTING //Redraw weather icons for(var/T in P.planet_floors) var/turf/simulated/turf = T diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 7fb3a56c61..d7a91c9b4f 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -234,7 +234,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle name = "star" var/speed = 10 var/direction = SOUTH - layer = 2 // TURF_LAYER + layer = TURF_LAYER + plane = TURF_PLANE /obj/effect/bgstar/New() ..() diff --git a/code/game/antagonist/antagonist_update.dm b/code/game/antagonist/antagonist_update.dm index 7cf17b5640..16c27f82c7 100644 --- a/code/game/antagonist/antagonist_update.dm +++ b/code/game/antagonist/antagonist_update.dm @@ -33,7 +33,9 @@ if(!antag_indicator || !other.current || !recipient.current) return var/indicator = (faction_indicator && (other in faction_members)) ? faction_indicator : antag_indicator - return image('icons/mob/mob.dmi', loc = other.current, icon_state = indicator, layer = LIGHTING_LAYER+0.1) + var/image/returnimage = image('icons/mob/mob.dmi', loc = other.current, icon_state = indicator) + returnimage.plane = PLANE_LIGHTING_ABOVE + return returnimage /datum/antagonist/proc/update_all_icons() if(!antag_indicator) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index c79e6abf17..df3d06c141 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -13,82 +13,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station */ - - -/area - var/fire = null - var/atmos = 1 - var/atmosalm = 0 - var/poweralm = 1 - var/party = null - level = null - name = "Unknown" - icon = 'icons/turf/areas.dmi' - icon_state = "unknown" - layer = 10 - luminosity = 0 - mouse_opacity = 0 - var/lightswitch = 1 - - var/eject = null - - var/debug = 0 - var/requires_power = 1 - var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() - - var/power_equip = 1 - var/power_light = 1 - var/power_environ = 1 - var/music = null - var/used_equip = 0 - var/used_light = 0 - var/used_environ = 0 - - var/has_gravity = 1 - var/obj/machinery/power/apc/apc = null - var/no_air = null -// var/list/lights // list of all lights on this area - var/list/all_doors = null //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area - var/firedoors_closed = 0 - var/list/ambience = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg') - var/list/forced_ambience = null - var/sound_env = STANDARD_STATION - var/turf/base_turf //The base turf type of the area, which can be used to override the z-level's base turf - -/*Adding a wizard area teleport list because motherfucking lag -- Urist*/ -/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ -var/list/teleportlocs = list() - -/hook/startup/proc/setupTeleportLocs() - for(var/area/AR in world) - if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)) continue - if(teleportlocs.Find(AR.name)) continue - var/turf/picked = pick(get_area_turfs(AR.type)) - if (picked.z in using_map.station_levels) - teleportlocs += AR.name - teleportlocs[AR.name] = AR - - teleportlocs = sortAssoc(teleportlocs) - - return 1 - -var/list/ghostteleportlocs = list() - -/hook/startup/proc/setupGhostTeleportLocs() - for(var/area/AR in world) - if(ghostteleportlocs.Find(AR.name)) continue - if(istype(AR, /area/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom)) - ghostteleportlocs += AR.name - ghostteleportlocs[AR.name] = AR - var/turf/picked = pick(get_area_turfs(AR.type)) - if (picked.z in using_map.player_levels) - ghostteleportlocs += AR.name - ghostteleportlocs[AR.name] = AR - - ghostteleportlocs = sortAssoc(ghostteleportlocs) - - return 1 - /*-----------------------------------------------------------------------------*/ ///////// diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index a5c2fc2f44..c7a653a4c3 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -1,15 +1,49 @@ // Areas.dm - - -// === /area + var/fire = null + var/atmos = 1 + var/atmosalm = 0 + var/poweralm = 1 + var/party = null + level = null + name = "Unknown" + icon = 'icons/turf/areas.dmi' + icon_state = "unknown" + plane = PLANE_LIGHTING_ABOVE //In case we color them + luminosity = 0 + mouse_opacity = 0 + var/lightswitch = 1 + + var/eject = null + + var/debug = 0 + var/requires_power = 1 + var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() + + var/power_equip = 1 + var/power_light = 1 + var/power_environ = 1 + var/music = null + var/used_equip = 0 + var/used_light = 0 + var/used_environ = 0 + + var/has_gravity = 1 + var/obj/machinery/power/apc/apc = null + var/no_air = null +// var/list/lights // list of all lights on this area + var/list/all_doors = null //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area + var/firedoors_closed = 0 + var/list/ambience = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg') + var/list/forced_ambience = null + var/sound_env = STANDARD_STATION + var/turf/base_turf //The base turf type of the area, which can be used to override the z-level's base turf var/global/global_uid = 0 var/uid /area/New() icon_state = "" - layer = 10 uid = ++global_uid all_areas += src @@ -333,3 +367,37 @@ var/list/mob/living/forced_ambiance_list = new /area/drop_location() CRASH("Bad op: area/drop_location() called") + +/*Adding a wizard area teleport list because motherfucking lag -- Urist*/ +/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ +var/list/teleportlocs = list() + +/hook/startup/proc/setupTeleportLocs() + for(var/area/AR in world) + if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)) continue + if(teleportlocs.Find(AR.name)) continue + var/turf/picked = pick(get_area_turfs(AR.type)) + if (picked.z in using_map.station_levels) + teleportlocs += AR.name + teleportlocs[AR.name] = AR + + teleportlocs = sortAssoc(teleportlocs) + + return 1 + +var/list/ghostteleportlocs = list() + +/hook/startup/proc/setupGhostTeleportLocs() + for(var/area/AR in world) + if(ghostteleportlocs.Find(AR.name)) continue + if(istype(AR, /area/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom)) + ghostteleportlocs += AR.name + ghostteleportlocs[AR.name] = AR + var/turf/picked = pick(get_area_turfs(AR.type)) + if (picked.z in using_map.player_levels) + ghostteleportlocs += AR.name + ghostteleportlocs[AR.name] = AR + + ghostteleportlocs = sortAssoc(ghostteleportlocs) + + return 1 diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e18970802e..dda3e0a6b5 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,5 +1,5 @@ /atom - layer = 2 + layer = TURF_LAYER //This was here when I got here. Why though? var/level = 2 var/flags = 0 var/list/fingerprints diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 0cd09b8a57..5311d642a2 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -1,5 +1,5 @@ /atom/movable - layer = 3 + layer = OBJ_LAYER appearance_flags = TILE_BOUND|PIXEL_SCALE var/last_move = null var/anchored = 0 diff --git a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm index fb4888ee20..2c47b8e162 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm @@ -10,7 +10,7 @@ announce=0 cause_hell=0 - layer=LIGHTING_LAYER+2 // ITS SO BRIGHT + plane = PLANE_LIGHTING_ABOVE // ITS SO BRIGHT consume_range = 6 @@ -79,7 +79,8 @@ var/turf/T_mob = get_turf(src) if((R.z == T_mob.z) && (get_dist(R,T_mob) <= (R.consume_range+10)) && !(R in view(T_mob))) if(!riftimage) - riftimage = image('icons/obj/rift.dmi',T_mob,"rift",LIGHTING_LAYER+2,1) + riftimage = image('icons/obj/rift.dmi',T_mob,"rift",1,1) + riftimage.plane = PLANE_LIGHTING_ABOVE riftimage.mouse_opacity = 0 var/new_x = 32 * (R.x - T_mob.x) + R.pixel_x diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index c59c67c300..b34d1565a0 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -4,7 +4,7 @@ name = "Bluespace Gigabeacon" desc = "A device that draws power from bluespace and creates a permanent tracking beacon." level = 1 // underfloor - layer = 2.5 + layer = UNDER_JUNK_LAYER anchored = 1 use_power = 1 idle_power_usage = 0 diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index 0ea5527df2..dd79d5acc1 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -2,7 +2,6 @@ name = "\improper AI Liquid Dispenser" icon = 'icons/obj/device.dmi' icon_state = "motion0" - layer = 3 anchored = 1.0 use_power = 1 idle_power_usage = 10 diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 769dd9c39f..70d8864e2d 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -6,7 +6,8 @@ use_power = 2 idle_power_usage = 5 active_power_usage = 10 - layer = 5 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER var/list/network = list(NETWORK_DEFAULT) var/c_tag = null diff --git a/code/game/machinery/computer3/lapvend.dm b/code/game/machinery/computer3/lapvend.dm index e1e70ca3a7..cbfa8686bc 100644 --- a/code/game/machinery/computer3/lapvend.dm +++ b/code/game/machinery/computer3/lapvend.dm @@ -3,7 +3,6 @@ desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "robotics" - layer = 2.9 anchored = 1 density = 1 var/obj/machinery/computer3/laptop/vended/newlap = null diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 6709cb2363..f7ab7e7a7e 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -6,13 +6,15 @@ icon_state = "pod_preview" density = 1 anchored = 1.0 - layer = 2.8 + layer = UNDER_JUNK_LAYER interact_offline = 1 var/on = 0 use_power = 1 idle_power_usage = 20 active_power_usage = 200 + buckle_lying = FALSE + buckle_dir = SOUTH var/temperature_archived var/mob/living/carbon/occupant = null @@ -20,12 +22,29 @@ var/current_heat_capacity = 50 + var/image/fluid + /obj/machinery/atmospherics/unary/cryo_cell/New() ..() icon = 'icons/obj/cryogenics_split.dmi' - update_icon() + icon_state = "base" initialize_directions = dir +/obj/machinery/atmospherics/unary/cryo_cell/initialize() + . = ..() + var/image/tank = image(icon,"tank") + tank.alpha = 200 + tank.pixel_y = 18 + tank.plane = MOB_PLANE + tank.layer = MOB_LAYER+0.2 //Above fluid + fluid = image(icon, "tube_filler") + fluid.pixel_y = 18 + fluid.alpha = 200 + fluid.plane = MOB_PLANE + fluid.layer = MOB_LAYER+0.1 //Below glass, above mob + add_overlay(tank) + update_icon() + /obj/machinery/atmospherics/unary/cryo_cell/Destroy() var/turf/T = src.loc T.contents += contents @@ -153,6 +172,7 @@ if(beaker) beaker.loc = get_step(src.loc, SOUTH) beaker = null + update_icon() if(href_list["ejectOccupant"]) if(!occupant || isslime(usr) || ispAI(usr)) @@ -172,6 +192,7 @@ user.drop_item() G.loc = src user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!") + update_icon() else if(istype(G, /obj/item/weapon/grab)) var/obj/item/weapon/grab/grab = G if(!ismob(grab.affecting)) @@ -191,40 +212,23 @@ put_mob(target) /obj/machinery/atmospherics/unary/cryo_cell/update_icon() - overlays.Cut() - icon_state = "pod[on]" - var/image/I - - I = image(icon, "pod[on]_top") - I.layer = 5 // this needs to be fairly high so it displays over most things, but it needs to be under lighting (at 10) - I.pixel_z = 32 - overlays += I - - if(occupant) - var/image/pickle = image(occupant.icon, occupant.icon_state) - pickle.overlays = occupant.overlays - pickle.pixel_z = 18 - pickle.layer = 5 - overlays += pickle - - I = image(icon, "lid[on]") - I.layer = 5 - overlays += I - - I = image(icon, "lid[on]_top") - I.layer = 5 - I.pixel_z = 32 - overlays += I + cut_overlay(fluid) + fluid.color = null + if(on) + if(beaker) + fluid.color = beaker.reagents.get_color() + add_overlay(fluid) /obj/machinery/atmospherics/unary/cryo_cell/proc/process_occupant() if(air_contents.total_moles < 10) return if(occupant) - if(occupant.stat == 2) + if(occupant.stat >= DEAD) return occupant.bodytemperature += 2*(air_contents.temperature - occupant.bodytemperature)*current_heat_capacity/(current_heat_capacity + air_contents.heat_capacity()) occupant.bodytemperature = max(occupant.bodytemperature, air_contents.temperature) // this is so ugly i'm sorry for doing it i'll fix it later i promise - occupant.stat = 1 + occupant.stat = UNCONSCIOUS + occupant.dir = SOUTH if(occupant.bodytemperature < T0C) occupant.sleeping = max(5, (1/occupant.bodytemperature)*2000) occupant.Paralyse(max(5, (1/occupant.bodytemperature)*3000)) @@ -273,14 +277,16 @@ if(occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE + vis_contents -= occupant + occupant.pixel_x = occupant.default_pixel_x + occupant.pixel_y = occupant.default_pixel_y occupant.loc = get_step(src.loc, SOUTH) //this doesn't account for walls or anything, but i don't forsee that being a problem. if(occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) //Patch by Aranclanos to stop people from taking burn damage after being ejected occupant.bodytemperature = 261 // Changed to 70 from 140 by Zuhayr due to reoccurance of bug. -// occupant.metabslow = 0 + unbuckle_mob(occupant, force = TRUE) occupant = null current_heat_capacity = initial(current_heat_capacity) update_use_power(1) - update_icon() return /obj/machinery/atmospherics/unary/cryo_cell/proc/put_mob(mob/living/carbon/M as mob) if(stat & (NOPOWER|BROKEN)) @@ -307,6 +313,9 @@ if(M.health > -100 && (M.health < 0 || M.sleeping)) M << "You feel a cold liquid surround you. Your skin starts to freeze up." occupant = M + buckle_mob(occupant, forced = TRUE, check_loc = FALSE) + vis_contents |= occupant + occupant.pixel_y += 19 current_heat_capacity = HEAT_CAPACITY_HUMAN update_use_power(2) // M.metabslow = 1 diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm index 215238a80b..39a91b8aff 100644 --- a/code/game/machinery/holosign.dm +++ b/code/game/machinery/holosign.dm @@ -4,7 +4,7 @@ desc = "Small wall-mounted holographic projector" icon = 'icons/obj/holosign.dmi' icon_state = "sign_off" - layer = 4 + plane = MOB_PLANE use_power = 1 idle_power_usage = 2 active_power_usage = 4 diff --git a/code/game/machinery/kitchen/icecream.dm b/code/game/machinery/kitchen/icecream.dm index fab6319e26..09cb3289ed 100644 --- a/code/game/machinery/kitchen/icecream.dm +++ b/code/game/machinery/kitchen/icecream.dm @@ -172,7 +172,6 @@ name = "ice cream cone" desc = "Delicious waffle cone, but no ice cream." icon_state = "icecream_cone_waffle" //default for admin-spawned cones, href_list["cone"] should overwrite this all the time - layer = 3.1 bitesize = 3 var/ice_creamed = 0 diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index fa81ff1620..3da253e682 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -2,7 +2,6 @@ name = "microwave" icon = 'icons/obj/kitchen.dmi' icon_state = "mw" - layer = 2.9 density = 1 anchored = 1 use_power = 1 diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index a2f5c00ad1..b2c3d21b68 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -4,7 +4,6 @@ name = "\improper SmartFridge" icon = 'icons/obj/vending.dmi' icon_state = "smartfridge" - layer = 2.9 density = 1 anchored = 1 use_power = 1 diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 673e366313..874f8876b9 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -97,6 +97,7 @@ Class Procs: name = "machinery" icon = 'icons/obj/stationobjs.dmi' w_class = ITEMSIZE_NO_CONTAINER + layer = UNDER_JUNK_LAYER var/stat = 0 var/emagged = 0 diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index af61e93424..8022235736 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -9,8 +9,7 @@ icon_state = "floor_magnet-f" name = "Electromagnetic Generator" desc = "A device that uses station power to create points of magnetic energy." - level = 1 // underfloor - layer = 2.5 + plane = PLATING_PLANE anchored = 1 use_power = 1 idle_power_usage = 50 diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index ac0af16378..7e472c8eca 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -8,8 +8,7 @@ var/global/list/navbeacons = list() // no I don't like putting this in, but it w icon_state = "navbeacon0-f" name = "navigation beacon" desc = "A beacon used for bot navigation." - level = 1 // underfloor - layer = 2.5 + plane = PLATING_PLANE anchored = 1 var/open = 0 // true if cover is open var/locked = 1 // true if controls are locked diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index 48bd028c09..0ec65cc30d 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -168,7 +168,7 @@ qdel(I) qdel(J) H.icon = HI - H.layer = 25 + H.hud_layerise() usr.mapobjs += H #else @@ -287,7 +287,7 @@ H.icon = I qdel(I) - H.layer = 25 + H.hud_layerise() usr.mapobjs += H #endif diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 4b45229594..939b4da1d0 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -6,7 +6,6 @@ desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "generic" - layer = 2.9 anchored = 1 density = 1 diff --git a/code/game/mecha/combat/gorilla.dm b/code/game/mecha/combat/gorilla.dm index b6f1915667..cc5dacebc3 100644 --- a/code/game/mecha/combat/gorilla.dm +++ b/code/game/mecha/combat/gorilla.dm @@ -51,7 +51,7 @@ desc = "... Blitzkrieg?" icon = 'icons/mecha/mecha64x64.dmi' icon_state = "pzrwreck" - layer = 4 // so it overlaps other people + plane = MOB_PLANE pixel_x = -16 anchored = 1 // It's fucking huge. You aren't moving it. diff --git a/code/game/mecha/mech_sensor.dm b/code/game/mecha/mech_sensor.dm index 87a9863ee8..5173f182ce 100644 --- a/code/game/mecha/mech_sensor.dm +++ b/code/game/mecha/mech_sensor.dm @@ -7,7 +7,7 @@ density = 1 throwpass = 1 use_power = 1 - layer = 3.3 + layer = ON_WINDOW_LAYER power_channel = EQUIP var/on = 0 var/id_tag = null diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm index 2c864f0a56..7a79c21e1e 100644 --- a/code/game/objects/effects/alien/aliens.dm +++ b/code/game/objects/effects/alien/aliens.dm @@ -147,7 +147,8 @@ anchored = 1 density = 0 - layer = 2 + plane = TURF_PLANE + layer = ABOVE_TURF_LAYER var/health = 15 var/obj/effect/alien/weeds/node/linked_node = null @@ -155,7 +156,7 @@ icon_state = "weednode" name = "purple sac" desc = "Weird purple octopus-like thing." - layer = 3 + layer = ABOVE_TURF_LAYER+0.01 light_range = NODERANGE var/node_range = NODERANGE diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm index be7e759a63..436ebabcc9 100644 --- a/code/game/objects/effects/chem/chemsmoke.dm +++ b/code/game/objects/effects/chem/chemsmoke.dm @@ -161,7 +161,7 @@ if(chemholder.reagents.reagent_list.len) chemholder.reagents.trans_to_obj(smoke, chemholder.reagents.total_volume / dist, copy = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents smoke.icon = I - smoke.layer = 6 + smoke.plane = ABOVE_PLANE smoke.set_dir(pick(cardinal)) smoke.pixel_x = -32 + rand(-8, 8) smoke.pixel_y = -32 + rand(-8, 8) diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index c04540535b..b69226815e 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -2,7 +2,7 @@ //Liquid fuel is used for things that used to rely on volatile fuels or phoron being contained to a couple tiles. icon = 'icons/effects/effects.dmi' icon_state = "fuel" - layer = TURF_LAYER+0.2 + plane = DIRTY_PLANE anchored = 1 var/amount = 1 diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 46b9d3645c..90f708ff9d 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -10,7 +10,7 @@ var/global/list/image/splatter_cache=list() gender = PLURAL density = 0 anchored = 1 - layer = 2 + plane = BLOOD_PLANE icon = 'icons/effects/blood.dmi' icon_state = "mfloor1" random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7") @@ -179,7 +179,6 @@ var/global/list/image/splatter_cache=list() gender = PLURAL density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/blood.dmi' icon_state = "gibbl5" random_icon_states = list("gib1", "gib2", "gib3", "gib5", "gib6") @@ -236,7 +235,6 @@ var/global/list/image/splatter_cache=list() gender = PLURAL density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/blood.dmi' icon_state = "mucus" random_icon_states = list("mucus") diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index ab01bfa005..1ef83bc722 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -4,7 +4,6 @@ gender = PLURAL density = 0 anchored = 1 - layer = 2 icon = 'icons/obj/objects.dmi' icon_state = "shards" @@ -36,7 +35,6 @@ gender = PLURAL density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/effects.dmi' icon_state = "dirt" mouse_opacity = 0 @@ -47,7 +45,6 @@ gender = PLURAL density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/effects.dmi' icon_state = "flour" @@ -57,7 +54,6 @@ gender = PLURAL density = 0 anchored = 1 - layer = 2 light_range = 1 icon = 'icons/effects/effects.dmi' icon_state = "greenglow" @@ -67,7 +63,7 @@ desc = "Somebody should remove that." density = 0 anchored = 1 - layer = 3 + plane = OBJ_PLANE icon = 'icons/effects/effects.dmi' icon_state = "cobweb1" @@ -76,7 +72,7 @@ desc = "It looks like a melted... something." density = 0 anchored = 1 - layer = 3 + plane = OBJ_PLANE icon = 'icons/obj/chemical.dmi' icon_state = "molten" @@ -85,7 +81,7 @@ desc = "Somebody should remove that." density = 0 anchored = 1 - layer = 3 + plane = OBJ_PLANE icon = 'icons/effects/effects.dmi' icon_state = "cobweb2" @@ -96,7 +92,6 @@ gender = PLURAL density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/blood.dmi' icon_state = "vomit_1" random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") @@ -107,7 +102,6 @@ desc = "It's red." density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3") @@ -116,7 +110,6 @@ desc = "Seems like this one won't hatch." density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3") @@ -125,7 +118,6 @@ desc = "It's pie cream from a cream pie." density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_pie") @@ -134,7 +126,6 @@ desc = "Some kind of fruit smear." density = 0 anchored = 1 - layer = 2 icon = 'icons/effects/blood.dmi' icon_state = "mfloor1" random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7") diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 2db1e5e948..f7965e092d 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -1,4 +1,5 @@ /obj/effect/decal/cleanable + plane = DIRTY_PLANE var/list/random_icon_states = list() /obj/effect/decal/cleanable/clean_blood(var/ignore = 0) diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 20047ced12..55bb54b803 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -2,7 +2,7 @@ name = "rune" desc = "A rune drawn in crayon." icon = 'icons/obj/rune.dmi' - layer = 2.1 + plane = DIRTY_PLANE anchored = 1 New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune") diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 964a1301b8..f3a75ce3c2 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -3,7 +3,7 @@ desc = "It's an arrow hanging in mid-air. There may be a wizard about." icon = 'icons/mob/screen1.dmi' icon_state = "arrow" - layer = 16.0 + plane = ABOVE_PLANE anchored = 1 mouse_opacity = 0 @@ -11,4 +11,4 @@ /obj/effect/decal/spraystill density = 0 anchored = 1 - layer = 50 \ No newline at end of file + plane = ABOVE_PLANE \ No newline at end of file diff --git a/code/game/objects/effects/decals/warning_stripes.dm b/code/game/objects/effects/decals/warning_stripes.dm index e22acfad74..db7c4bf74f 100644 --- a/code/game/objects/effects/decals/warning_stripes.dm +++ b/code/game/objects/effects/decals/warning_stripes.dm @@ -1,6 +1,5 @@ /obj/effect/decal/warning_stripes icon = 'icons/effects/warning_stripes.dmi' - layer = 2 /obj/effect/decal/warning_stripes/New() . = ..() diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 349400226a..aaebab4355 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -26,7 +26,8 @@ desc = "Something swinging really wide." icon = 'icons/effects/96x96.dmi' icon_state = "cleave" - layer = 6 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER time_to_die = 6 alpha = 140 mouse_opacity = 0 diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index d6dea13c51..9f4f0fa118 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -17,7 +17,8 @@ icon = 'icons/misc/beach2.dmi' icon_state = "palm1" density = 1 - layer = 5 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER anchored = 1 /obj/effect/overlay/palmtree_l @@ -25,7 +26,8 @@ icon = 'icons/misc/beach2.dmi' icon_state = "palm2" density = 1 - layer = 5 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER anchored = 1 /obj/effect/overlay/coconut @@ -37,7 +39,7 @@ name = "Bluespace" icon = 'icons/turf/space.dmi' icon_state = "bluespacify" - layer = 10 + plane = ABOVE_PLANE /obj/effect/overlay/wallrot name = "wallrot" @@ -45,7 +47,8 @@ icon = 'icons/effects/wallrot.dmi' anchored = 1 density = 1 - layer = 5 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER mouse_opacity = 0 /obj/effect/overlay/wallrot/New() @@ -70,7 +73,8 @@ /obj/effect/overlay/snow/floor icon_state = "snowfloor" - layer = 2.01 //Just above floor + plane = TURF_PLANE + layer = ABOVE_TURF_LAYER mouse_opacity = 0 //Don't block underlying tile interactions /obj/effect/overlay/snow/floor/edges @@ -81,11 +85,12 @@ /obj/effect/overlay/snow/airlock icon_state = "snowairlock" - layer = 3.2 //Just above airlocks + layer = DOOR_CLOSED_LAYER+0.01 /obj/effect/overlay/snow/floor/pointy icon_state = "snowfloorpointy" /obj/effect/overlay/snow/wall icon_state = "snowwall" - layer = 5 //Same as lights so humans can stand under it + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index a26c1169d5..d3b9853e06 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -123,7 +123,7 @@ desc = "It never stays still for long." icon_state = "spiderling" anchored = 0 - layer = 2.7 + layer = HIDING_LAYER health = 3 var/last_itch = 0 var/amount_grown = -1 diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index f1c9aa2d14..e24a727b99 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -104,7 +104,6 @@ bmark.pixel_x = p_x bmark.pixel_y = p_y bmark.icon = 'icons/effects/effects.dmi' - bmark.layer = 3.5 bmark.icon_state = "scorch" if(decaltype == 1) diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index b5654dade7..d0b2534463 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -46,7 +46,6 @@ name = "\proper the coordinates to clown planet" icon_state = "data" item_state = "card-id" - layer = 3 level = 2 desc = "This card contains coordinates to the fabled Clown Planet. Handle with care." function = "teleporter" diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm index 3bb0c89bdc..43183d45f4 100644 --- a/code/game/objects/items/weapons/policetape.dm +++ b/code/game/objects/items/weapons/policetape.dm @@ -30,7 +30,7 @@ var/list/tape_roll_applications = list() name = "tape" icon = 'icons/policetape.dmi' anchored = 1 - layer = 3.2 + layer = WINDOW_LAYER var/lifted = 0 var/crumpled = 0 var/tape_dir = 0 @@ -257,7 +257,7 @@ var/list/tape_roll_applications = list() else var/obj/item/tape/P = new tape_type(T) P.update_icon() - P.layer = 3.2 + P.layer = WINDOW_LAYER user << "You finish placing \the [src]." if (istype(A, /turf/simulated/floor) ||istype(A, /turf/unsimulated/floor)) @@ -307,10 +307,11 @@ var/list/tape_roll_applications = list() /obj/item/tape/proc/lift(time) lifted = 1 - layer = 8 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER spawn(time) lifted = 0 - layer = initial(layer) + reset_plane_and_layer() // Returns a list of all tape objects connected to src, including itself. /obj/item/tape/proc/gettapeline() diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 30257a2b84..83e944f593 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -131,7 +131,7 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "tape" w_class = ITEMSIZE_TINY - layer = 4 + plane = MOB_PLANE anchored = 1 //it's sticky, no you cant move it var/obj/item/weapon/stuck = null diff --git a/code/game/objects/items/weapons/trays.dm b/code/game/objects/items/weapons/trays.dm index 68a2c3a774..8d9977cc17 100644 --- a/code/game/objects/items/weapons/trays.dm +++ b/code/game/objects/items/weapons/trays.dm @@ -188,7 +188,7 @@ carrying.Add(I) Img.icon = I.icon Img.icon_state = I.icon_state - Img.layer = 30 + I.layer + Img.layer = layer + I.layer*0.01 if(istype(I, /obj/item/weapon/material)) var/obj/item/weapon/material/O = I if(O.applies_material_colour) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 31d5189ddb..3835b2a24b 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -1,4 +1,6 @@ /obj + layer = OBJ_LAYER + plane = OBJ_PLANE //Used to store information about the contents of the object. var/list/matter var/w_class // Size of the object. diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 5c3542015c..9b3d866d2b 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -10,7 +10,8 @@ LINEN BINS icon = 'icons/obj/items.dmi' icon_state = "sheet" slot_flags = SLOT_BACK - layer = 4.0 + plane = MOB_PLANE + layer = BELOW_MOB_LAYER throwforce = 1 throw_speed = 1 throw_range = 2 @@ -19,9 +20,9 @@ LINEN BINS /obj/item/weapon/bedsheet/attack_self(mob/user as mob) user.drop_item() if(layer == initial(layer)) - layer = MOB_LAYER + 0.1 + layer = ABOVE_MOB_LAYER else - layer = initial(layer) + reset_plane_and_layer() add_fingerprint(user) return diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index a3ff9ac9af..a22bbae0d2 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -2,7 +2,7 @@ icon_state = "girder" anchored = 1 density = 1 - layer = 2 + plane = PLATING_PLANE w_class = ITEMSIZE_HUGE var/state = 0 var/health = 200 diff --git a/code/game/objects/structures/gravemarker.dm b/code/game/objects/structures/gravemarker.dm index a10cd0bf6e..e20591b939 100644 --- a/code/game/objects/structures/gravemarker.dm +++ b/code/game/objects/structures/gravemarker.dm @@ -8,7 +8,7 @@ throwpass = 1 climbable = 1 - layer = 3.1 //Above dirt piles + layer = ABOVE_JUNK_LAYER //Maybe make these calculate based on material? var/health = 100 diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 6fea7e6ece..ee80999916 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -7,7 +7,7 @@ anchored = 1 flags = CONDUCT pressure_resistance = 5*ONE_ATMOSPHERE - layer = 2.9 + layer = UNDER_JUNK_LAYER explosion_resistance = 1 var/health = 10 var/destroyed = 0 diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index c042b8fc9a..d9ec122c55 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -6,7 +6,7 @@ density = 0 anchored = 1.0 w_class = ITEMSIZE_NORMAL - layer = 2.3 //under pipes + plane = PLATING_PLANE // flags = CONDUCT /obj/structure/lattice/initialize() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 732bb1b55d..d0324c98bf 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -148,7 +148,7 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "morguet" density = 1 - layer = 2.0 + plane = TURF_PLANE var/obj/structure/morgue/connected = null anchored = 1 throwpass = 1 diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index 27bb902aea..e67750b8f3 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -6,7 +6,7 @@ density = 1 throwpass = 1 climbable = 1 - layer = 3.2 //Just above doors + layer = WINDOW_LAYER anchored = 1 flags = ON_BORDER icon_state = "railing0" diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 7f78e8f0e7..37edb603c1 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -172,7 +172,8 @@ obj/structure/safe/ex_act(severity) icon_state = "floorsafe" density = 0 level = 1 //underfloor - layer = 2.5 + plane = TURF_PLANE + layer = ABOVE_UTILITY /obj/structure/safe/floor/initialize() . = ..() diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 1d68de0d25..33c6d6501c 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -3,7 +3,7 @@ anchored = 1 opacity = 0 density = 0 - layer = 3.5 + layer = ABOVE_JUNK_LAYER w_class = ITEMSIZE_NORMAL /obj/structure/sign/ex_act(severity) diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index ed9c4e0301..390e3c84b9 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -47,15 +47,17 @@ if(isnull(stool_cache[cache_key])) var/image/I = image(icon, "[base_icon]_armrest") I.layer = MOB_LAYER + 0.1 + I.plane = MOB_PLANE I.color = padding_material.icon_colour stool_cache[cache_key] = I overlays |= stool_cache[cache_key] /obj/structure/bed/chair/proc/update_layer() if(src.dir == NORTH) - src.layer = FLY_LAYER + plane = MOB_PLANE + layer = MOB_LAYER + 0.1 else - src.layer = OBJ_LAYER + reset_plane_and_layer() /obj/structure/bed/chair/set_dir() ..() diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index 83396b363e..646e52218c 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -29,7 +29,7 @@ W.density = 1 user.remove_from_mob(W) W.loc = loc - W.layer = 3.1 + W.layer = ABOVE_JUNK_LAYER pinned_target = W user << "You slide the target into the stake." return diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm index 0f9b4a603a..c260103a56 100644 --- a/code/game/objects/structures/transit_tubes.dm +++ b/code/game/objects/structures/transit_tubes.dm @@ -7,7 +7,7 @@ icon = 'icons/obj/pipes/transit_tube.dmi' icon_state = "E-W" density = 1 - layer = 3.1 + layer = ABOVE_JUNK_LAYER anchored = 1.0 var/list/tube_dirs = null var/exit_delay = 2 diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index eab6f203fc..36da7485ad 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -5,7 +5,7 @@ density = 1 w_class = ITEMSIZE_NORMAL - layer = 3.2//Just above doors + layer = WINDOW_LAYER pressure_resistance = 4*ONE_ATMOSPHERE anchored = 1.0 flags = ON_BORDER @@ -462,7 +462,7 @@ if(ratio > 75) return - var/image/I = image(icon, "damage[ratio]", layer + 0.1) + var/image/I = image(icon, "damage[ratio]", layer = layer + 0.1) overlays += I return diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 3b657e57f2..3cc0bb8ab9 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -46,7 +46,8 @@ var/list/mechtoys = list( icon_state = "plasticflaps" density = 0 anchored = 1 - layer = 4 + layer = MOB_LAYER + plane = MOB_PLANE explosion_resistance = 5 var/list/mobs_can_pass = list( /mob/living/bot, diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm index c41e316bad..957cc20389 100644 --- a/code/game/turfs/flooring/flooring_decals.dm +++ b/code/game/turfs/flooring/flooring_decals.dm @@ -6,7 +6,7 @@ var/list/floor_decals = list() /obj/effect/floor_decal name = "floor decal" icon = 'icons/turf/flooring/decals.dmi' - layer = DECALS_LAYER + plane = DECAL_PLANE var/supplied_dir /obj/effect/floor_decal/New(var/newloc, var/newdir, var/newcolour) diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index c28aedddca..e1b49762ec 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -7,7 +7,7 @@ var/image/no_ceiling_image = null return TRUE /proc/cache_no_ceiling_image() - no_ceiling_image = image(icon = 'icons/turf/open_space.dmi', icon_state = "no_ceiling", layer = OVERTURF_LAYER) + no_ceiling_image = image(icon = 'icons/turf/open_space.dmi', icon_state = "no_ceiling") no_ceiling_image.plane = PLANE_MESONS /turf/simulated/floor/update_icon(var/update_neighbors) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 21fd9492f0..e5bb57ad9e 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -252,7 +252,7 @@ O.icon_state = "2" O.anchored = 1 O.density = 1 - O.layer = 5 + O.plane = ABOVE_PLANE if(girder_material.integrity >= 150 && !girder_material.is_brittle()) //Strong girders will remain in place when a wall is melted. dismantle_wall(1,1) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 3aa00a20f0..100c3b5a31 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -1,5 +1,7 @@ /turf icon = 'icons/turf/floors.dmi' + layer = TURF_LAYER + plane = TURF_PLANE level = 1 var/holy = 0 diff --git a/code/game/turfs/unsimulated/shuttle.dm b/code/game/turfs/unsimulated/shuttle.dm index 99f5bc15bd..cb70c6c36d 100644 --- a/code/game/turfs/unsimulated/shuttle.dm +++ b/code/game/turfs/unsimulated/shuttle.dm @@ -3,7 +3,6 @@ icon = 'icons/turf/shuttle_white.dmi' thermal_conductivity = 0.05 heat_capacity = 0 - layer = 2 /turf/unsimulated/shuttle/wall name = "wall" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index a31748d676..08b16efa60 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -7,6 +7,7 @@ var/global/floorIsLava = 0 /proc/message_admins(var/msg) msg = "ADMIN LOG: [msg]" //log_adminwarn(msg) //log_and_message_admins is for this + for(var/client/C in admins) if((R_ADMIN|R_MOD) & C.holder.rights) C << msg diff --git a/code/modules/blob2/blobs/base_blob.dm b/code/modules/blob2/blobs/base_blob.dm index ba9f41c403..19461e68c8 100644 --- a/code/modules/blob2/blobs/base_blob.dm +++ b/code/modules/blob2/blobs/base_blob.dm @@ -285,7 +285,8 @@ var/list/blobs = list() name = "blob" desc = "The blob lashing out at something." icon_state = "blob_attack" - layer = 5.2 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER time_to_die = 6 alpha = 140 mouse_opacity = 0 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 3c3f1fd194..568cf8f44f 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -47,7 +47,7 @@ mob/living/carbon/proc/handle_hallucinations() if(!H.r_store) slots_free += ui_storage2 if(slots_free.len) halitem.screen_loc = pick(slots_free) - halitem.layer = 50 + halitem.hud_layerise() switch(rand(1,6)) if(1) //revolver halitem.icon = 'icons/obj/gun.dmi' diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm index f08f28d97a..c35d4b489a 100644 --- a/code/modules/hydroponics/spreading/spreading.dm +++ b/code/modules/hydroponics/spreading/spreading.dm @@ -51,7 +51,6 @@ density = 0 icon = 'icons/obj/hydroponics_growing.dmi' icon_state = "bush4-1" - layer = 3 pass_flags = PASSTABLE mouse_opacity = 2 @@ -192,12 +191,12 @@ icon_state = "[seed.get_trait(TRAIT_PLANT_ICON)]-[growth]" if(growth>2 && growth == max_growth) - layer = 5 + plane = ABOVE_PLANE set_opacity(1) if(!isnull(seed.chems["woodpulp"])) density = 1 else - layer = 3 + reset_plane_and_layer() density = 0 /obj/effect/plant/proc/calc_dir() diff --git a/code/modules/lighting/lighting_overlay.dm b/code/modules/lighting/lighting_overlay.dm index cade937bfb..5e97aa6818 100644 --- a/code/modules/lighting/lighting_overlay.dm +++ b/code/modules/lighting/lighting_overlay.dm @@ -5,7 +5,6 @@ simulated = 0 anchored = 1 icon = LIGHTING_ICON - layer = LIGHTING_LAYER plane = PLANE_LIGHTING //invisibility = INVISIBILITY_LIGHTING color = LIGHTING_BASE_MATRIX diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 246d7c16a3..2b9340192f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -8,7 +8,7 @@ desc = "It's a g-g-g-g-ghooooost!" //jinkies! icon = 'icons/mob/ghost.dmi' icon_state = "ghost" - layer = 3.9 //Just below normal mobs + layer = BELOW_MOB_LAYER plane = PLANE_GHOSTS alpha = 127 stat = DEAD diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index 4d01759ce9..7153c0fe26 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -302,11 +302,6 @@ else adverb = " a very lengthy message" message = "[speaker] [verb][adverb]." - if(src.status_flags & PASSEMOTES) - for(var/obj/item/weapon/holder/H in src.contents) - H.show_message(message) - for(var/mob/living/M in src.contents) - M.show_message(message) src.show_message(message) /mob/proc/hear_sleep(var/message) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 973757df64..3a19eee319 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -139,7 +139,6 @@ var/list/holder_mob_icon_cache = list() grabber << "You scoop up \the [src]!" src << "\The [grabber] scoops you up!" - grabber.status_flags |= PASSEMOTES H.sync(src) return H diff --git a/code/modules/mob/living/carbon/alien/diona/diona_powers.dm b/code/modules/mob/living/carbon/alien/diona/diona_powers.dm index 614647993b..585b421c7f 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_powers.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_powers.dm @@ -33,7 +33,6 @@ if(!istype(H) || !src || !(src.Adjacent(H))) return 0 H << "You feel your being twine with that of \the [src] as it merges with your biomass." - H.status_flags |= PASSEMOTES src << "You feel your being twine with that of \the [H] as you merge with its biomass." loc = H verbs += /mob/living/carbon/alien/diona/proc/split @@ -66,4 +65,3 @@ for(var/atom/A in M.contents) if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) return - M.status_flags &= ~PASSEMOTES \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c55ebee9ef..dc3a01527f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1563,8 +1563,9 @@ /mob/living/carbon/human/proc/update_icon_special() //For things such as teshari hiding and whatnot. if(status_flags & HIDING) // Hiding? Carry on. - if(stat == DEAD || paralysis || weakened || stunned) //stunned/knocked down by something that isn't the rest verb? Note: This was tried with INCAPACITATION_STUNNED, but that refused to work. - status_flags &= ~HIDING //No hiding for you. Mob layer should be updated naturally, but it actually isn't. + if(stat == DEAD || paralysis || weakened || stunned || restrained()) //stunned/knocked down by something that isn't the rest verb? Note: This was tried with INCAPACITATION_STUNNED, but that refused to work. + reset_plane_and_layer() + status_flags &= ~HIDING else layer = HIDING_LAYER diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 471841049d..8a9db8a349 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -279,20 +279,3 @@ to_chat(src, "Your regeneration is interrupted!") nutrition -= 75 active_regen = FALSE - -/mob/living/carbon/human/proc/hide_humanoid() - set name = "Hide" - set desc = "Allows you to hide beneath tables or certain items. Toggled on or off." - set category = "Abilities" - - if(stat == DEAD || paralysis || weakened || stunned || restrained()) // No hiding if you're stunned! - return - - if(status_flags & HIDING) - layer = MOB_LAYER - to_chat(src, "You have stopped hiding.") - else - layer = HIDING_LAYER //Just above cables with their 2.44 - to_chat(src, "You are now hiding.") - - status_flags ^= HIDING diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm index 72f4f808d4..a8b3925158 100644 --- a/code/modules/mob/living/carbon/human/species/station/seromi.dm +++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm @@ -114,7 +114,7 @@ inherent_verbs = list( /mob/living/carbon/human/proc/sonar_ping, - /mob/living/carbon/human/proc/hide_humanoid + /mob/living/proc/hide ) /datum/species/teshari/equip_survival_gear(var/mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 5fdea4a0e6..31fe6b3152 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -6,7 +6,8 @@ var/is_adult = 0 speak_emote = list("chirps") - layer = 5 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER maxHealth = 150 health = 150 gender = NEUTER diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 21298e94db..3892f8310e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -13,7 +13,6 @@ var/mutable_appearance/dsma = new(dsoverlay) //Changing like ten things, might as well. dsma.alpha = 0 dsma.plane = PLANE_LIGHTING - dsma.layer = LIGHTING_LAYER + 0.1 dsma.blend_mode = BLEND_ADD dsoverlay.appearance = dsma @@ -836,7 +835,6 @@ default behaviour is: for(var/atom/A in M.contents) if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) return - M.status_flags &= ~PASSEMOTES else if(istype(H.loc,/obj/item/clothing/accessory/holster)) var/obj/item/clothing/accessory/holster/holster = H.loc diff --git a/code/modules/mob/living/living_powers.dm b/code/modules/mob/living/living_powers.dm index d2c2d72e4e..1442c80f9b 100644 --- a/code/modules/mob/living/living_powers.dm +++ b/code/modules/mob/living/living_powers.dm @@ -6,9 +6,12 @@ if(stat == DEAD || paralysis || weakened || stunned || restrained()) return - if(layer == HIDING_LAYER) - layer = MOB_LAYER - src << text("You have stopped hiding.") + if(status_flags & HIDING) + status_flags &= ~HIDING + reset_plane_and_layer() + to_chat(src,"You have stopped hiding.") else + status_flags |= HIDING layer = HIDING_LAYER //Just above cables with their 2.44 - src << text("You are now hiding.") + plane = OBJ_PLANE + to_chat(src,"You are now hiding.") diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 9e4ede05a1..4b4edeb25c 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -371,8 +371,11 @@ proc/get_radio_key_from_channel(var/channel) return 1 /mob/living/proc/say_signlang(var/message, var/verb="gestures", var/datum/language/language) - for (var/mob/O in viewers(src, null)) - O.hear_signlang(message, verb, language, src) + var/list/potentials = get_mobs_and_objs_in_view_fast(src, world.view) + var/list/mobs = potentials["mobs"] + for(var/hearer in mobs) + var/mob/M = hearer + M.hear_signlang(message, verb, language, src) return 1 /obj/effect/speech_bubble diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm index b89e2f2af6..e4add4d749 100644 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ b/code/modules/mob/living/simple_animal/borer/borer.dm @@ -168,9 +168,6 @@ host.reset_view(null) host.machine = null - - var/mob/living/H = host - H.status_flags &= ~PASSEMOTES host = null return diff --git a/code/modules/mob/living/simple_animal/borer/borer_powers.dm b/code/modules/mob/living/simple_animal/borer/borer_powers.dm index 311b013ef8..b75da20cc4 100644 --- a/code/modules/mob/living/simple_animal/borer/borer_powers.dm +++ b/code/modules/mob/living/simple_animal/borer/borer_powers.dm @@ -104,7 +104,6 @@ M << "Something disgusting and slimy wiggles into your ear!" src.host = M - src.host.status_flags |= PASSEMOTES src.forceMove(M) //Update their traitor status. diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index cdc6b6af74..7e012c71a0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -1,6 +1,7 @@ /mob density = 1 - layer = 4.0 + layer = MOB_LAYER + plane = MOB_PLANE animate_movement = 2 flags = PROXMOVE var/datum/mind/mind diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 58c530d06c..b5cc72fd19 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -31,7 +31,6 @@ var/force_down //determines if the affecting mob will be pinned to the ground var/dancing //determines if assailant and affecting keep looking at each other. Basically a wrestling position - layer = 21 abstract = 1 item_state = "nothing" w_class = ITEMSIZE_HUGE @@ -194,7 +193,7 @@ return var/shift = 0 var/adir = get_dir(assailant, affecting) - affecting.layer = 4 + affecting.layer = MOB_LAYER switch(state) if(GRAB_PASSIVE) shift = 8 @@ -217,7 +216,7 @@ switch(adir) if(NORTH) animate(affecting, pixel_x = 0, pixel_y =-shift, 5, 1, LINEAR_EASING) - affecting.layer = 3.9 + affecting.layer = BELOW_MOB_LAYER if(SOUTH) animate(affecting, pixel_x = 0, pixel_y = shift, 5, 1, LINEAR_EASING) if(WEST) @@ -396,7 +395,7 @@ /obj/item/weapon/grab/Destroy() animate(affecting, pixel_x = 0, pixel_y = 0, 4, 1, LINEAR_EASING) - affecting.layer = 4 + affecting.reset_plane_and_layer() if(affecting) affecting.grabbed_by -= src affecting = null diff --git a/code/modules/mob/mob_planes.dm b/code/modules/mob/mob_planes.dm index 1252ed6649..563f433926 100644 --- a/code/modules/mob/mob_planes.dm +++ b/code/modules/mob/mob_planes.dm @@ -135,7 +135,6 @@ //Lighting is weird and has matrix shenanigans. Think of this as turning on/off darkness. /obj/screen/plane_master/fullbright plane = PLANE_LIGHTING - layer = LIGHTING_LAYER+1 color = null //To break lighting when visible (this is sorta backwards) alpha = 0 //Starts full opaque invisibility = 101 diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 9e090c2095..816b62a099 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -13,7 +13,8 @@ w_class = ITEMSIZE_TINY throw_range = 1 throw_speed = 1 - layer = 4 + plane = MOB_PLANE + layer = MOB_LAYER pressure_resistance = 1 slot_flags = SLOT_HEAD body_parts_covered = HEAD diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 23ac5ace63..2e3bfb2f79 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -8,7 +8,8 @@ w_class = ITEMSIZE_SMALL throw_range = 2 throw_speed = 1 - layer = 4 + plane = MOB_PLANE + layer = MOB_LAYER pressure_resistance = 1 attack_verb = list("bapped") var/page = 1 // current page diff --git a/code/modules/power/fusion/core/core_field.dm b/code/modules/power/fusion/core/core_field.dm index ef1c3716fa..1efb09d777 100644 --- a/code/modules/power/fusion/core/core_field.dm +++ b/code/modules/power/fusion/core/core_field.dm @@ -9,7 +9,8 @@ icon = 'icons/obj/machines/power/fusion.dmi' icon_state = "emfield_s1" alpha = 50 - layer = 4 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER light_color = "#cc7700" var/size = 1 diff --git a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm index 468f24510a..29d9362015 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm @@ -2,7 +2,6 @@ name = "fuel rod assembly" icon = 'icons/obj/machines/power/fusion.dmi' icon_state = "fuel_assembly" - layer = 4 var/material_name diff --git a/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm b/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm index 6a0f1bc205..375af68696 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm @@ -4,7 +4,6 @@ icon_state = "fuel_compressor1" density = 1 anchored = 1 - layer = 4 circuit = /obj/item/weapon/circuitboard/fusion_fuel_compressor diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 6de14313f1..f80454d9bd 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -16,7 +16,8 @@ icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-stage1" anchored = 1 - layer = 5 + plane = MOB_LAYER + layer = ABOVE_MOB_LAYER var/stage = 1 var/fixture_type = "tube" var/sheets_refunded = 2 @@ -132,7 +133,8 @@ icon = 'icons/obj/lighting.dmi' icon_state = "bulb-construct-stage1" anchored = 1 - layer = 5 + plane = MOB_LAYER + layer = ABOVE_MOB_LAYER stage = 1 fixture_type = "bulb" sheets_refunded = 1 @@ -143,7 +145,6 @@ icon = 'icons/obj/lighting.dmi' icon_state = "flamp-construct-stage1" anchored = 0 - layer = OBJ_LAYER stage = 1 fixture_type = "flamp" sheets_refunded = 2 @@ -156,7 +157,8 @@ icon_state = "tube1" desc = "A lighting fixture." anchored = 1 - layer = 5 // They were appearing under mobs which is a little weird - Ostaf + plane = MOB_LAYER + layer = ABOVE_MOB_LAYER use_power = 2 idle_power_usage = 2 active_power_usage = 20 diff --git a/code/modules/power/sensors/powernet_sensor.dm b/code/modules/power/sensors/powernet_sensor.dm index d082b17922..20c8837b32 100644 --- a/code/modules/power/sensors/powernet_sensor.dm +++ b/code/modules/power/sensors/powernet_sensor.dm @@ -12,7 +12,7 @@ desc = "Small machine which transmits data about specific powernet" anchored = 1 density = 0 - layer = 2.46 // Above cables, but should be below floors. + layer = ABOVE_UTILITY icon = 'icons/obj/objects.dmi' icon_state = "floor_beacon" // If anyone wants to make better sprite, feel free to do so without asking me. diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 246dbba6c7..75ec8fffc7 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -7,7 +7,7 @@ icon_state = "singularity_s1" anchored = 1 density = 1 - layer = 6 + plane = ABOVE_PLANE light_range = 6 unacidable = 1 //Don't comment this out. diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index a1f2fbf030..2c01476a7a 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -8,10 +8,10 @@ icon_state = "term" desc = "It's an underfloor wiring terminal for power equipment." level = 1 - layer = TURF_LAYER var/obj/machinery/power/master = null anchored = 1 - layer = 2.6 // a bit above wires + plane = PLATING_PLANE + layer = WIRES_LAYER+0.01 /obj/machinery/power/terminal/New() diff --git a/code/modules/projectiles/effects.dm b/code/modules/projectiles/effects.dm index ba6a749ebe..18010d3d17 100644 --- a/code/modules/projectiles/effects.dm +++ b/code/modules/projectiles/effects.dm @@ -1,7 +1,7 @@ /obj/effect/projectile icon = 'icons/effects/projectiles.dmi' icon_state = "bolt" - layer = 20 + plane = ABOVE_PLANE /obj/effect/projectile/New(var/turf/location) if(istype(location)) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 1ac48546f5..3587e2f36a 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -281,7 +281,6 @@ name = "All-In-One Grinder" icon = 'icons/obj/kitchen.dmi' icon_state = "juicer1" - layer = 2.9 density = 0 anchored = 0 use_power = 1 diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 2933ee9727..0048cd5194 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -6,7 +6,8 @@ icon_state = "conveyor0" name = "conveyor belt" desc = "A conveyor belt." - layer = 2 // so they appear under stuff + plane = TURF_PLANE + layer = ABOVE_TURF_LAYER anchored = 1 circuit = /obj/item/weapon/circuitboard/conveyor var/operating = 0 // 1 if running forward, -1 if backwards, 0 if off diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index e9b59dd14f..fdae51e647 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -663,7 +663,7 @@ var/dpdir = 0 // bitmask of pipe directions dir = 0 // dir will contain dominant direction for junction pipes var/health = 10 // health points 0-10 - layer = 2.3 // slightly lower than wires and other pipes + layer = DISPOSAL_LAYER // slightly lower than wires and other pipes var/base_icon_state // initial icon state on map var/sortType = "" var/subtype = 0 diff --git a/code/modules/shieldgen/energy_field.dm b/code/modules/shieldgen/energy_field.dm index e558a2621e..023d5fee95 100644 --- a/code/modules/shieldgen/energy_field.dm +++ b/code/modules/shieldgen/energy_field.dm @@ -15,7 +15,8 @@ icon_state = "shield" alpha = 100 anchored = 1 - layer = 4.1 //just above mobs + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER density = 0 var/obj/machinery/shield_gen/my_gen = null var/strength = 0 // in Renwicks diff --git a/code/modules/spells/aoe_turf/conjure/conjure.dm b/code/modules/spells/aoe_turf/conjure/conjure.dm index 1302513bfe..e96985e9bb 100644 --- a/code/modules/spells/aoe_turf/conjure/conjure.dm +++ b/code/modules/spells/aoe_turf/conjure/conjure.dm @@ -56,7 +56,8 @@ How they spawn stuff is decided by behaviour vars, which are explained below animation.density = 0 animation.anchored = 1 animation.icon = 'icons/effects/effects.dmi' - animation.layer = 3 + animation.plane = OBJ_PLANE + animation.layer = ABOVE_JUNK_LAYER animation.master = summoned_object for(var/varName in newVars) diff --git a/code/modules/spells/targeted/ethereal_jaunt.dm b/code/modules/spells/targeted/ethereal_jaunt.dm index e48db592ad..68cf35e9a4 100644 --- a/code/modules/spells/targeted/ethereal_jaunt.dm +++ b/code/modules/spells/targeted/ethereal_jaunt.dm @@ -26,7 +26,8 @@ animation.density = 0 animation.anchored = 1 animation.icon = 'icons/mob/mob.dmi' - animation.layer = 5 + animation.plane = MOB_PLANE + animation.layer = ABOVE_MOB_LAYER animation.master = holder target.ExtinguishMob() if(target.buckled) diff --git a/code/modules/tables/flipping.dm b/code/modules/tables/flipping.dm index 670edd01d8..5de58c1354 100644 --- a/code/modules/tables/flipping.dm +++ b/code/modules/tables/flipping.dm @@ -84,7 +84,8 @@ set_dir(direction) if(dir != NORTH) - layer = 5 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER climbable = 0 //flipping tables allows them to be used as makeshift barriers flipped = 1 flags |= ON_BORDER @@ -102,7 +103,7 @@ verbs -=/obj/structure/table/proc/do_put verbs +=/obj/structure/table/verb/do_flip - layer = initial(layer) + reset_plane_and_layer() flipped = 0 climbable = initial(climbable) flags &= ~ON_BORDER diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index 003535a590..b32af0f479 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -6,7 +6,7 @@ density = 1 anchored = 1 climbable = 1 - layer = 2.8 + layer = UNDER_JUNK_LAYER throwpass = 1 surgery_odds = 66 var/flipped = 0 diff --git a/code/modules/turbolift/turbolift_console.dm b/code/modules/turbolift/turbolift_console.dm index f661951681..bc6bafbe52 100644 --- a/code/modules/turbolift/turbolift_console.dm +++ b/code/modules/turbolift/turbolift_console.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/turbolift.dmi' anchored = 1 density = 0 - layer = 4 + plane = MOB_PLANE var/datum/turbolift/lift diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index e4a402188a..f3a9dab041 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -181,7 +181,8 @@ var/list/ventcrawl_machinery = list( for(var/datum/pipeline/pipeline in network.line_members) for(var/obj/machinery/atmospherics/A in (pipeline.members || pipeline.edges)) if(!A.pipe_image) - A.pipe_image = image(A, A.loc, layer = 20, dir = A.dir) + A.pipe_image = image(A, A.loc, dir = A.dir) + A.pipe_image.plane = PLANE_LIGHTING_ABOVE pipes_shown += A.pipe_image client.images += A.pipe_image if(client) diff --git a/code/modules/xenoarcheaology/artifacts/gigadrill.dm b/code/modules/xenoarcheaology/artifacts/gigadrill.dm index 42c7288d2d..b6c665cb66 100644 --- a/code/modules/xenoarcheaology/artifacts/gigadrill.dm +++ b/code/modules/xenoarcheaology/artifacts/gigadrill.dm @@ -7,7 +7,7 @@ var/drill_time = 10 var/turf/drilling_turf density = 1 - layer = 3.1 //to go over ores + layer = ABOVE_JUNK_LAYER /obj/machinery/giga_drill/attack_hand(mob/user as mob) if(active) diff --git a/icons/obj/cryogenics_split.dmi b/icons/obj/cryogenics_split.dmi index a25513a1435115e084811064ce7f52c734469fab..86ef62b6f8c3e5387cc4cbabd491feeeffc082bd 100644 GIT binary patch literal 3328 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 KMNUMnLSTZjFm3Pv literal 5537 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 IzB}gs00`5OmH+?% diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm index 51ac498fb2..90d22afb86 100644 --- a/maps/RandomZLevels/wildwest.dm +++ b/maps/RandomZLevels/wildwest.dm @@ -104,7 +104,6 @@ desc = "What is that thing?" density = 1 anchored = 1 - layer = 3 icon = 'icons/mob/critter.dmi' icon_state = "blob" var/triggerproc = "explode" //name of the proc thats called when the mine is triggered @@ -171,4 +170,4 @@ C << "You have regenerated." C.visible_message("[usr] appears to wake from the dead, having healed all wounds.") C.update_canmove() - return 1 + return 1