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 a25513a143..86ef62b6f8 100644
Binary files a/icons/obj/cryogenics_split.dmi and b/icons/obj/cryogenics_split.dmi differ
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