From 1c867b414cd549db72c702d83d883002b994fded Mon Sep 17 00:00:00 2001
From: S34NW <12197162+S34NW@users.noreply.github.com>
Date: Mon, 27 Sep 2021 19:33:42 +0100
Subject: [PATCH 01/11] HERE COME THE CLOSETS
---
code/game/machinery/doors/brigdoors.dm | 2 +-
code/game/objects/items/random_items.dm | 7 +-
.../structures/crates_lockers/closets.dm | 49 +++++---
.../crates_lockers/closets/cardboardbox.dm | 2 -
.../crates_lockers/closets/coffin.dm | 4 -
.../crates_lockers/closets/crittercrate.dm | 2 -
.../crates_lockers/closets/fitness.dm | 6 +-
.../crates_lockers/closets/gimmick.dm | 19 +--
.../crates_lockers/closets/job_closets.dm | 10 +-
.../crates_lockers/closets/l3closet.dm | 27 +---
.../crates_lockers/closets/malfunction.dm | 2 -
.../crates_lockers/closets/secure/bar.dm | 20 +--
.../crates_lockers/closets/secure/cargo.dm | 14 +--
.../crates_lockers/closets/secure/chaplain.dm | 7 +-
.../crates_lockers/closets/secure/depot.dm | 1 -
.../closets/secure/engineering.dm | 35 +-----
.../crates_lockers/closets/secure/freezer.dm | 38 ++----
.../closets/secure/guncabinet.dm | 29 +++--
.../closets/secure/hydroponics.dm | 8 +-
.../crates_lockers/closets/secure/medical.dm | 90 ++------------
.../crates_lockers/closets/secure/miscjobs.dm | 14 +--
.../crates_lockers/closets/secure/personal.dm | 23 ++--
.../closets/secure/scientist.dm | 28 +----
.../closets/secure/secure_closets.dm | 68 +++++-----
.../crates_lockers/closets/secure/security.dm | 117 ++----------------
.../crates_lockers/closets/syndicate.dm | 3 -
.../crates_lockers/closets/utility_closets.dm | 62 +---------
.../crates_lockers/closets/wardrobe.dm | 28 +----
code/modules/mining/mine_items.dm | 7 +-
icons/obj/closet.dmi | Bin 113069 -> 67817 bytes
icons/obj/crates.dmi | Bin 21671 -> 21673 bytes
icons/obj/guncabinet.dmi | Bin 1972 -> 981 bytes
32 files changed, 157 insertions(+), 565 deletions(-)
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index da050eb644c..369dcf43fd3 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -207,7 +207,7 @@
if(C.opened && !C.close())
continue
C.locked = 1
- C.icon_state = C.icon_locked
+ C.icon_state = C.add_overlay("locked")
for(var/obj/machinery/treadmill_monitor/T in targets)
T.total_joules = 0
diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm
index 2e91f668265..04715c44c33 100644
--- a/code/game/objects/items/random_items.dm
+++ b/code/game/objects/items/random_items.dm
@@ -232,12 +232,7 @@
/obj/structure/closet/secure_closet/random_drinks
name = "unlabelled booze closet"
req_access = list(ACCESS_BAR)
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
+ icon_state = "cabinet"
open_sound = 'sound/machines/wooden_closet_open.ogg'
close_sound = 'sound/machines/wooden_closet_close.ogg'
open_sound_volume = 25
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 49e9b4e2f48..80f506aae3e 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -2,19 +2,20 @@
name = "closet"
desc = "It's a basic storage unit."
icon = 'icons/obj/closet.dmi'
- icon_state = "closed"
- density = 1
+ icon_state = "generic"
+ density = TRUE
max_integrity = 200
integrity_failure = 50
armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 70, ACID = 60)
- var/icon_closed = "closed"
- var/icon_opened = "open"
+ var/icon_closed
+ var/icon_opened
+ var/is_wardrobe
var/opened = FALSE
var/welded = FALSE
var/locked = FALSE
var/large = TRUE
var/can_be_emaged = FALSE
- var/wall_mounted = 0 //never solid (You can always pass over it)
+ var/wall_mounted //never solid (You can always pass over it)
var/lastbang
var/open_sound = 'sound/machines/closet_open.ogg'
var/close_sound = 'sound/machines/closet_close.ogg'
@@ -27,6 +28,11 @@
// Please dont override this unless you absolutely have to
/obj/structure/closet/Initialize(mapload)
. = ..()
+ icon_closed = "[icon_state]"
+ if(!is_wardrobe)
+ icon_opened = "[icon_state]_open"
+ else
+ icon_opened = "generic_open"
if(mapload && !opened)
// Youre probably asking, why is this a 0 seconds timer AA?
// Well, I will tell you. One day, all /obj/effect/spawner will use Initialize
@@ -34,8 +40,8 @@
// the loot will just be in a pile. Adding a timer with 0 delay will cause it to only take in contents once the MC has loaded,
// therefore solving the issue on mapload. During rounds, everything will happen as normal
addtimer(CALLBACK(src, .proc/take_contents), 0)
- update_icon() // Set it to the right icon if needed
populate_contents() // Spawn all its stuff
+ update_icon() // Set it to the right icon if needed
// Override this to spawn your things in. This lets you use probabilities, and also doesnt cause init overrides
/obj/structure/closet/proc/populate_contents()
@@ -50,6 +56,8 @@
// Ensure the storage cap is respected
if(++itemcount >= storage_capacity)
break
+ if(istype(src, /obj/structure/closet/secure_closet/guncabinet))
+ update_icon()
// Fix for #383 - C4 deleting fridges with corpses
/obj/structure/closet/Destroy()
@@ -95,10 +103,10 @@
dump_contents()
- icon_state = icon_opened
opened = TRUE
+ update_icon()
playsound(loc, open_sound, open_sound_volume, TRUE, -3)
- density = 0
+ density = FALSE
return TRUE
/obj/structure/closet/proc/close()
@@ -138,10 +146,10 @@
M.forceMove(src)
itemcount++
- icon_state = icon_closed
opened = FALSE
+ update_icon()
playsound(loc, close_sound, close_sound_volume, TRUE, -3)
- density = 1
+ density = TRUE
return TRUE
/obj/structure/closet/proc/toggle(mob/user)
@@ -295,13 +303,18 @@
to_chat(usr, "This mob type can't use this verb.")
/obj/structure/closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot)
- overlays.Cut()
if(!opened)
icon_state = icon_closed
- if(welded)
- overlays += "welded"
else
icon_state = icon_opened
+ update_overlays()
+
+/obj/structure/closet/proc/update_overlays()
+ overlays.Cut()
+ if(opened)
+ return
+ if(welded)
+ overlays += "welded"
// Objects that try to exit a locker by stepping were doing so successfully,
// and due to an oversight in turf/Enter() were going through walls. That
@@ -377,8 +390,6 @@
desc = "A storage unit that moves and stores through the fourth dimension."
density = 0
icon_state = "bluespace"
- icon_closed = "bluespace"
- icon_opened = "bluespaceopen"
storage_capacity = 60
var/materials = list(MAT_METAL = 5000, MAT_PLASMA = 2500, MAT_TITANIUM = 500, MAT_BLUESPACE = 500)
@@ -392,13 +403,13 @@
if(A.density && A != src && A != AM)
transparent = TRUE
break
- icon_opened = transparent ? "bluespaceopentrans" : "bluespaceopen"
- icon_closed = transparent ? "bluespacetrans" : "bluespace"
+ icon_opened = transparent ? "bluespace_open_trans" : "bluespace_open"
+ icon_closed = transparent ? "bluespace_trans" : "bluespace"
icon_state = opened ? icon_opened : icon_closed
/obj/structure/closet/bluespace/Crossed(atom/movable/AM, oldloc)
if(AM.density)
- icon_state = opened ? "bluespaceopentrans" : "bluespacetrans"
+ icon_state = opened ? "bluespace_open_trans" : "bluespace_trans"
/obj/structure/closet/bluespace/Move(NewLoc, direct) // Allows for "phasing" throug objects but doesn't allow you to stuff your EOC homebois in one of these and push them through walls.
var/turf/T = get_turf(NewLoc)
@@ -412,4 +423,4 @@
/obj/structure/closet/bluespace/close()
. = ..()
- density = 0
+ density = FALSE
diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
index 0345dca3b7f..406648cdc41 100644
--- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
+++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
@@ -3,8 +3,6 @@
desc = "Just a box..."
icon = 'icons/obj/cardboard_boxes.dmi'
icon_state = "cardboard"
- icon_opened = "cardboard_open"
- icon_closed = "cardboard"
resistance_flags = FLAMMABLE
max_integrity = 70
integrity_failure = 0
diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm
index edb3d1e50d1..73b2e78f5f1 100644
--- a/code/game/objects/structures/crates_lockers/closets/coffin.dm
+++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm
@@ -2,8 +2,6 @@
name = "coffin"
desc = "It's a burial receptacle for the dearly departed."
icon_state = "coffin"
- icon_closed = "coffin"
- icon_opened = "coffin_open"
resistance_flags = FLAMMABLE
max_integrity = 70
material_drop = /obj/item/stack/sheet/wood
@@ -21,8 +19,6 @@
/obj/structure/closet/coffin/sarcophagus
name = "sarcophagus"
icon_state = "sarc"
- icon_closed = "sarc"
- icon_opened = "sarc_open"
open_sound = 'sound/effects/stonedoor_openclose.ogg'
close_sound = 'sound/effects/stonedoor_openclose.ogg'
material_drop = /obj/item/stack/sheet/mineral/sandstone
diff --git a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm
index 8370048ecd0..83f34b4eb07 100644
--- a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm
@@ -2,6 +2,4 @@
name = "critter crate"
desc = "A crate which can sustain life for a while."
icon_state = "critter"
- icon_opened = "critteropen"
- icon_closed = "critter"
material_drop = /obj/item/stack/sheet/wood
diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm
index 62013452d23..56bfa47bc27 100644
--- a/code/game/objects/structures/crates_lockers/closets/fitness.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm
@@ -2,7 +2,7 @@
name = "athletic wardrobe"
desc = "It's a storage unit for athletic wear."
icon_state = "mixed"
- icon_closed = "mixed"
+ is_wardrobe = TRUE
/obj/structure/closet/athletic_mixed/populate_contents()
new /obj/item/clothing/under/shorts/grey(src)
@@ -42,7 +42,7 @@
name = "red laser tag equipment"
desc = "It's a storage unit for laser tag equipment."
icon_state = "red"
- icon_closed = "red"
+ is_wardrobe = TRUE
/obj/structure/closet/lasertag/red/populate_contents()
new /obj/item/gun/energy/laser/tag/red(src)
@@ -57,7 +57,7 @@
name = "blue laser tag equipment"
desc = "It's a storage unit for laser tag equipment."
icon_state = "blue"
- icon_closed = "blue"
+ is_wardrobe = TRUE
/obj/structure/closet/lasertag/blue/populate_contents()
new /obj/item/gun/energy/laser/tag/blue(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index 0126a7f8a68..9d94ff8f659 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -1,9 +1,7 @@
/obj/structure/closet/cabinet
name = "cabinet"
desc = "Old will forever be in fashion."
- icon_state = "cabinet_closed"
- icon_closed = "cabinet_closed"
- icon_opened = "cabinet_open"
+ icon_state = "cabinet"
resistance_flags = FLAMMABLE
open_sound = 'sound/machines/wooden_closet_open.ogg'
close_sound = 'sound/machines/wooden_closet_close.ogg'
@@ -20,25 +18,18 @@
/obj/structure/closet/acloset
name = "strange closet"
desc = "It looks alien!"
- icon_state = "acloset"
- icon_closed = "acloset"
- icon_opened = "aclosetopen"
-
+ icon_state = "alien"
/obj/structure/closet/gimmick
name = "administrative supply closet"
desc = "It's a storage unit for things that have no right being here."
icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
anchored = 0
/obj/structure/closet/gimmick/russian
name = "russian surplus closet"
desc = "It's a storage unit for Russian standard-issue surplus."
icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
/obj/structure/closet/gimmick/russian/populate_contents()
new /obj/item/clothing/head/ushanka(src)
@@ -57,8 +48,6 @@
name = "tacticool gear closet"
desc = "It's a storage unit for Tacticool gear."
icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
/obj/structure/closet/gimmick/tacticool/populate_contents()
new /obj/item/clothing/glasses/eyepatch(src)
@@ -81,8 +70,6 @@
name = "\improper Thunderdome closet"
desc = "Everything you need!"
icon_state = "syndicate"
- icon_closed = "syndicate"
- icon_opened = "syndicateopen"
anchored = 1
/obj/structure/closet/thunderdome/tdred
@@ -111,8 +98,6 @@
/obj/structure/closet/thunderdome/tdgreen
name = "green-team Thunderdome closet"
icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
/obj/structure/closet/thunderdome/tdgreen/populate_contents()
new /obj/item/clothing/suit/armor/tdome/green(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index 25c6572b9a8..d8498da95b2 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -12,7 +12,7 @@
name = "formal closet"
desc = "It's a storage unit for formal clothing."
icon_state = "black"
- icon_closed = "black"
+ is_wardrobe = TRUE
/obj/structure/closet/gmcloset/populate_contents()
new /obj/item/clothing/head/that(src)
@@ -39,7 +39,7 @@
name = "chef's closet"
desc = "It's a storage unit for foodservice garments."
icon_state = "black"
- icon_closed = "black"
+ is_wardrobe = TRUE
/obj/structure/closet/chefcloset/populate_contents()
new /obj/item/clothing/under/waiter(src)
@@ -66,7 +66,7 @@
name = "custodial closet"
desc = "It's a storage unit for janitorial clothes and gear."
icon_state = "mixed"
- icon_closed = "mixed"
+ is_wardrobe = TRUE
/obj/structure/closet/jcloset/populate_contents()
new /obj/item/flashlight(src)
@@ -106,7 +106,7 @@
name = "legal closet"
desc = "It's a storage unit for courtroom apparel and items."
icon_state = "blue"
- icon_closed = "blue"
+ is_wardrobe = TRUE
/obj/structure/closet/lawcloset/populate_contents()
new /obj/item/storage/box/tapes(src)
@@ -131,7 +131,7 @@
name = "paramedic wardrobe"
desc = "It's a storage unit for paramedic equipment."
icon_state = "blue"
- icon_closed = "blue"
+ is_wardrobe = TRUE
/obj/structure/closet/paramedic/populate_contents()
diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm
index 6eb2b680b35..5d485ce56a0 100644
--- a/code/game/objects/structures/crates_lockers/closets/l3closet.dm
+++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm
@@ -2,29 +2,21 @@
name = "level-3 biohazard suit closet"
desc = "It's a storage unit for level-3 biohazard gear."
icon_state = "bio"
- icon_closed = "bio"
- icon_opened = "bioopen"
/obj/structure/closet/l3closet/populate_contents()
new /obj/item/storage/bag/bio( src )
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )
-
/obj/structure/closet/l3closet/general
- icon_state = "bio_general"
- icon_closed = "bio_general"
- icon_opened = "bio_generalopen"
+ icon_state = "bio"
/obj/structure/closet/l3closet/general/populate_contents()
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )
-
/obj/structure/closet/l3closet/virology
- icon_state = "bio_virology"
- icon_closed = "bio_virology"
- icon_opened = "bio_virologyopen"
+ icon_state = "bio_viro"
/obj/structure/closet/l3closet/virology/populate_contents()
new /obj/item/storage/bag/bio( src )
@@ -33,31 +25,22 @@
new /obj/item/clothing/mask/breath(src)
new /obj/item/tank/internals/oxygen(src)
-
/obj/structure/closet/l3closet/security
- icon_state = "bio_security"
- icon_closed = "bio_security"
- icon_opened = "bio_securityopen"
+ icon_state = "bio_sec"
/obj/structure/closet/l3closet/security/populate_contents()
new /obj/item/clothing/suit/bio_suit/security( src )
new /obj/item/clothing/head/bio_hood/security( src )
-
/obj/structure/closet/l3closet/janitor
- icon_state = "bio_janitor"
- icon_closed = "bio_janitor"
- icon_opened = "bio_janitoropen"
+ icon_state = "bio_jan"
/obj/structure/closet/l3closet/janitor/populate_contents()
new /obj/item/clothing/suit/bio_suit/janitor( src )
new /obj/item/clothing/head/bio_hood/janitor( src )
-
/obj/structure/closet/l3closet/scientist
- icon_state = "bio_scientist"
- icon_closed = "bio_scientist"
- icon_opened = "bio_scientistopen"
+ icon_state = "bio"
/obj/structure/closet/l3closet/scientist/populate_contents()
new /obj/item/storage/bag/bio( src )
diff --git a/code/game/objects/structures/crates_lockers/closets/malfunction.dm b/code/game/objects/structures/crates_lockers/closets/malfunction.dm
index fcd763292e6..5665c22e234 100644
--- a/code/game/objects/structures/crates_lockers/closets/malfunction.dm
+++ b/code/game/objects/structures/crates_lockers/closets/malfunction.dm
@@ -2,8 +2,6 @@
/obj/structure/closet/malf/suits
desc = "It's a storage unit for operational gear."
icon_state = "syndicate"
- icon_closed = "syndicate"
- icon_opened = "syndicateopen"
/obj/structure/closet/malf/suits/populate_contents()
new /obj/item/tank/jetpack/void(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
index 1f49de3de2a..2e47fc0a458 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/bar
name = "Booze cabinet"
req_access = list(ACCESS_BAR)
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
+ icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
open_sound = 'sound/machines/wooden_closet_open.ogg'
@@ -27,13 +22,8 @@
new /obj/item/reagent_containers/food/drinks/cans/beer(src)
/obj/structure/closet/secure_closet/bar/update_icon()
- if(broken)
- icon_state = icon_broken
+ if(!opened)
+ icon_state = icon_closed
else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
+ icon_state = icon_opened
+ update_overlays()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
index cf1ad89b4ed..ceef1a2ad1d 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/cargotech
name = "cargo technician's locker"
req_access = list(ACCESS_CARGO)
- icon_state = "securecargo1"
- icon_closed = "securecargo"
- icon_locked = "securecargo1"
- icon_opened = "securecargoopen"
- icon_broken = "securecargobroken"
- icon_off = "securecargooff"
+ icon_state = "cargo"
/obj/structure/closet/secure_closet/cargotech/populate_contents()
new /obj/item/clothing/under/rank/cargotech(src)
@@ -21,12 +16,7 @@
/obj/structure/closet/secure_closet/quartermaster
name = "quartermaster's locker"
req_access = list(ACCESS_QM)
- icon_state = "secureqm1"
- icon_closed = "secureqm"
- icon_locked = "secureqm1"
- icon_opened = "secureqmopen"
- icon_broken = "secureqmbroken"
- icon_off = "secureqmoff"
+ icon_state = "qm"
/obj/structure/closet/secure_closet/quartermaster/populate_contents()
new /obj/item/clothing/under/rank/cargo(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm
index 55e44163a06..af646ad3017 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm
@@ -2,12 +2,7 @@
name = "chapel wardrobe"
desc = "A lockable storage unit for Nanotrasen-approved religious attire."
req_access = list(ACCESS_CHAPEL_OFFICE)
- icon_state = "chaplainsecure1"
- icon_closed = "chaplainsecure"
- icon_locked = "chaplainsecure1"
- icon_opened = "chaplainsecureopen"
- icon_broken = "chaplainsecurebroken"
- icon_off = "chaplainsecureoff"
+ icon_state = "chaplain"
/obj/structure/closet/secure_closet/chaplain/populate_contents()
new /obj/item/clothing/under/rank/chaplain(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/depot.dm b/code/game/objects/structures/crates_lockers/closets/secure/depot.dm
index eaed06a2c29..e92e79deaeb 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/depot.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/depot.dm
@@ -1,4 +1,3 @@
-
/obj/structure/closet/secure_closet/syndicate/depot
name = "depot supply closet"
desc = ""
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 7fa60e02c3c..6ed6a704a77 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/engineering_chief
name = "chief engineer's locker"
req_access = list(ACCESS_CE)
- icon_state = "securece1"
- icon_closed = "securece"
- icon_locked = "securece1"
- icon_opened = "secureceopen"
- icon_broken = "securecebroken"
- icon_off = "secureceoff"
+ icon_state = "ce"
/obj/structure/closet/secure_closet/engineering_chief/populate_contents()
if(prob(50))
@@ -46,12 +41,7 @@
/obj/structure/closet/secure_closet/engineering_electrical
name = "electrical supplies locker"
req_access = list(ACCESS_ENGINE_EQUIP)
- icon_state = "secureengelec1"
- icon_closed = "secureengelec"
- icon_locked = "secureengelec1"
- icon_opened = "toolclosetopen"
- icon_broken = "secureengelecbroken"
- icon_off = "secureengelecoff"
+ icon_state = "eng_elec"
/obj/structure/closet/secure_closet/engineering_electrical/populate_contents()
new /obj/item/clothing/gloves/color/yellow(src)
@@ -71,12 +61,7 @@
/obj/structure/closet/secure_closet/engineering_welding
name = "welding supplies locker"
req_access = list(ACCESS_ENGINE_EQUIP)
- icon_state = "secureengweld1"
- icon_closed = "secureengweld"
- icon_locked = "secureengweld1"
- icon_opened = "toolclosetopen"
- icon_broken = "secureengweldbroken"
- icon_off = "secureengweldoff"
+ icon_state = "eng_weld"
/obj/structure/closet/secure_closet/engineering_welding/populate_contents()
new /obj/item/clothing/head/welding(src)
@@ -90,12 +75,7 @@
/obj/structure/closet/secure_closet/engineering_personal
name = "engineer's locker"
req_access = list(ACCESS_ENGINE_EQUIP)
- icon_state = "secureeng1"
- icon_closed = "secureeng"
- icon_locked = "secureeng1"
- icon_opened = "secureengopen"
- icon_broken = "secureengbroken"
- icon_off = "secureengoff"
+ icon_state = "eng_secure"
/obj/structure/closet/secure_closet/engineering_personal/populate_contents()
if(prob(50))
@@ -118,12 +98,7 @@
/obj/structure/closet/secure_closet/atmos_personal
name = "technician's locker"
req_access = list(ACCESS_ATMOSPHERICS)
- icon_state = "secureatm1"
- icon_closed = "secureatm"
- icon_locked = "secureatm1"
- icon_opened = "secureatmopen"
- icon_broken = "secureatmbroken"
- icon_off = "secureatmoff"
+ icon_state = "atmos"
/obj/structure/closet/secure_closet/atmos_personal/populate_contents()
new /obj/item/radio/headset/headset_eng(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
index 16d1875044e..cc5c86574c5 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
@@ -2,19 +2,11 @@
desc = "It's a card-locked refrigerative storage unit. This one is lead-lined."
/obj/structure/closet/secure_closet/freezer/update_icon()
- if(broken)
- icon_state = icon_broken
+ if(!opened)
+ icon_state = icon_closed
else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- if(welded)
- overlays += "welded"
- else
- icon_state = icon_opened
-
+ icon_state = icon_opened
+ update_overlays()
/obj/structure/closet/secure_closet/freezer/ex_act(severity)
// IF INDIANA JONES CAN DO IT SO CAN YOU
@@ -23,7 +15,6 @@
if(!isemptylist(bombs)) // You're fucked.
..(severity)
-
/obj/structure/closet/secure_closet/freezer/kitchen
name = "kitchen cabinet"
req_access = list(ACCESS_KITCHEN)
@@ -53,12 +44,7 @@
/obj/structure/closet/secure_closet/freezer/meat
name = "meat fridge"
- icon_state = "fridge1"
- icon_closed = "fridge"
- icon_locked = "fridge1"
- icon_opened = "fridgeopen"
- icon_broken = "fridgebroken"
- icon_off = "fridge1"
+ icon_state = "freezer"
/obj/structure/closet/secure_closet/freezer/meat/populate_contents()
for(var/i in 1 to 4)
@@ -70,12 +56,7 @@
/obj/structure/closet/secure_closet/freezer/fridge
name = "refrigerator"
- icon_state = "fridge1"
- icon_closed = "fridge"
- icon_locked = "fridge1"
- icon_opened = "fridgeopen"
- icon_broken = "fridgebroken"
- icon_off = "fridge1"
+ icon_state = "freezer"
/obj/structure/closet/secure_closet/freezer/fridge/populate_contents()
for(var/i in 1 to 5)
@@ -90,12 +71,7 @@
/obj/structure/closet/secure_closet/freezer/money
name = "freezer"
- icon_state = "fridge1"
- icon_closed = "fridge"
- icon_locked = "fridge1"
- icon_opened = "fridgeopen"
- icon_broken = "fridgebroken"
- icon_off = "fridge1"
+ icon_state = "freezer"
req_access = list(ACCESS_HEADS_VAULT)
/obj/structure/closet/secure_closet/freezer/money/populate_contents()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm
index 581fe469a7e..d2372dd7fb4 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm
@@ -3,21 +3,22 @@
req_access = list(ACCESS_ARMORY)
icon = 'icons/obj/guncabinet.dmi'
icon_state = "base"
- icon_closed = "base"
- icon_opened = "base"
- icon_locked = "base"
- icon_broken = "base"
- icon_off = "base"
+ anchored = TRUE
/obj/structure/closet/secure_closet/guncabinet/toggle()
..()
update_icon()
-/obj/structure/closet/secure_closet/guncabinet/update_icon()
+/obj/structure/closet/secure_closet/guncabinet/emag_act(mob/user)
+ if(!broken)
+ broken = TRUE
+ locked = FALSE
+ to_chat(user, "You break the lock on [src].")
+ update_icon()
+
+/obj/structure/closet/secure_closet/guncabinet/update_overlays()
overlays.Cut()
- if(opened)
- overlays += icon(icon,"door_open")
- else
+ if(!opened)
var/lazors = 0
var/shottas = 0
for(var/obj/item/gun/G in contents)
@@ -27,7 +28,7 @@
shottas++
if(lazors || shottas)
for(var/i = 0 to 2)
- var/image/gun = image(icon(src.icon))
+ var/image/gun = image(icon(icon))
if(lazors > 0 && (shottas <= 0 || prob(50)))
lazors--
@@ -39,11 +40,9 @@
gun.pixel_x = i*4
overlays += gun
- overlays += icon(src.icon,"door")
+ overlays += "door"
if(broken)
- overlays += icon(src.icon,"broken")
+ overlays += "off"
else if(locked)
- overlays += icon(src.icon,"locked")
- else
- overlays += icon(src.icon,"open")
+ overlays += "locked"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
index 00b21ce1f58..51312a235d9 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
@@ -1,13 +1,7 @@
/obj/structure/closet/secure_closet/hydroponics
name = "botanist's locker"
req_access = list(ACCESS_HYDROPONICS)
- icon_state = "hydrosecure1"
- icon_closed = "hydrosecure"
- icon_locked = "hydrosecure1"
- icon_opened = "hydrosecureopen"
- icon_broken = "hydrosecurebroken"
- icon_off = "hydrosecureoff"
-
+ icon_state = "hydro"
/obj/structure/closet/secure_closet/hydroponics/populate_contents()
switch(rand(1,2))
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 555124cbb47..e5d37538ec5 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/medical1
name = "medicine closet"
desc = "Filled with medical junk."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_state = "med"
req_access = list(ACCESS_MEDICAL)
/obj/structure/closet/secure_closet/medical1/populate_contents()
@@ -28,12 +23,7 @@
/obj/structure/closet/secure_closet/medical2
name = "anesthetic locker"
desc = "Used to knock people out."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_state = "med"
req_access = list(ACCESS_SURGERY)
/obj/structure/closet/secure_closet/medical2/populate_contents()
@@ -48,12 +38,7 @@
/obj/structure/closet/secure_closet/medical3
name = "medical doctor's locker"
req_access = list(ACCESS_SURGERY)
- icon_state = "securemed1"
- icon_closed = "securemed"
- icon_locked = "securemed1"
- icon_opened = "securemedopen"
- icon_broken = "securemedbroken"
- icon_off = "securemedoff"
+ icon_state = "med_secure"
/obj/structure/closet/secure_closet/medical3/populate_contents()
if(prob(50))
@@ -78,12 +63,7 @@
/obj/structure/closet/secure_closet/exam
name = "exam room closet"
desc = "Filled with exam room materials."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_state = "med"
req_access = list(ACCESS_MEDICAL)
/obj/structure/closet/secure_closet/exam/populate_contents()
@@ -127,12 +107,7 @@
/obj/structure/closet/secure_closet/psychiatrist
name = "psychiatrist's locker"
req_access = list(ACCESS_PSYCHIATRIST)
- icon_state = "securemed1"
- icon_closed = "securemed"
- icon_locked = "securemed1"
- icon_opened = "securemedopen"
- icon_broken = "securemedbroken"
- icon_off = "securemedoff"
+ icon_state = "med_secure"
/obj/structure/closet/secure_closet/psychiatrist/populate_contents()
new /obj/item/clothing/suit/straight_jacket(src)
@@ -150,12 +125,7 @@
/obj/structure/closet/secure_closet/CMO
name = "chief medical officer's locker"
req_access = list(ACCESS_CMO)
- icon_state = "cmosecure1"
- icon_closed = "cmosecure"
- icon_locked = "cmosecure1"
- icon_opened = "cmosecureopen"
- icon_broken = "cmosecurebroken"
- icon_off = "cmosecureoff"
+ icon_state = "cmo"
/obj/structure/closet/secure_closet/CMO/populate_contents()
if(prob(50))
@@ -207,12 +177,7 @@
/obj/structure/closet/secure_closet/chemical
name = "chemical closet"
desc = "Store dangerous chemicals in here."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_state = "chemical"
req_access = list(ACCESS_CHEMISTRY)
/obj/structure/closet/secure_closet/chemical/populate_contents()
@@ -221,42 +186,10 @@
new /obj/item/storage/box/patch_packs(src)
new /obj/item/storage/box/patch_packs(src)
-
-/obj/structure/closet/secure_closet/medical_wall
- name = "first aid closet"
- desc = "It's a secure wall-mounted storage unit for first aid supplies."
- icon_state = "medical_wall_locked"
- icon_closed = "medical_wall_unlocked"
- icon_locked = "medical_wall_locked"
- icon_opened = "medical_wall_open"
- icon_broken = "medical_wall_spark"
- icon_off = "medical_wall_off"
- anchored = 1
- density = 0
- wall_mounted = 1
- req_access = list(ACCESS_MEDICAL)
-
-/obj/structure/closet/secure_closet/medical_wall/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
-
/obj/structure/closet/secure_closet/paramedic
name = "paramedic EVA gear"
desc = "A locker with a Paramedic EVA suit."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_state = "med"
req_access = list(ACCESS_PARAMEDIC)
/obj/structure/closet/secure_closet/paramedic/populate_contents()
@@ -270,12 +203,7 @@
/obj/structure/closet/secure_closet/reagents
name = "chemical storage closet"
desc = "Store dangerous chemicals in here."
- icon_state = "chemical1"
- icon_closed = "chemical"
- icon_locked = "chemical1"
- icon_opened = "medicalopen"
- icon_broken = "chemicalbroken"
- icon_off = "chemicaloff"
+ icon_state = "chemical"
req_access = list(ACCESS_CHEMISTRY)
/obj/structure/closet/secure_closet/reagents/populate_contents()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm b/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm
index 94289f8df75..c2dadfe2b88 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/miscjobs.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/clown
name = "clown's locker"
req_access = list(ACCESS_CLOWN)
- icon_state = "clownsecure1"
- icon_closed = "clownsecure"
- icon_locked = "clownsecure1"
- icon_opened = "clownsecureopen"
- icon_broken = "clownsecurebroken"
- icon_off = "clownsecureoff"
+ icon_state = "clown"
/obj/structure/closet/secure_closet/clown/populate_contents()
new /obj/item/storage/backpack/clown(src)
@@ -26,12 +21,7 @@
/obj/structure/closet/secure_closet/mime
name = "mime's locker"
req_access = list(ACCESS_MIME)
- icon_state = "mimesecure1"
- icon_closed = "mimesecure"
- icon_locked = "mimesecure1"
- icon_opened = "mimesecureopen"
- icon_broken = "mimesecurebroken"
- icon_off = "mimesecureoff"
+ icon_state = "mime"
/obj/structure/closet/secure_closet/mime/populate_contents()
new /obj/item/clothing/head/beret(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index 6c9ae35553c..8d45e2541e2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -24,12 +24,7 @@
/obj/structure/closet/secure_closet/personal/cabinet
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
+ icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
open_sound = 'sound/machines/wooden_closet_open.ogg'
@@ -38,16 +33,11 @@
close_sound_volume = 50
/obj/structure/closet/secure_closet/personal/cabinet/update_icon()
- if(broken)
- icon_state = icon_broken
+ if(!opened)
+ icon_state = icon_closed
else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
+ icon_state = icon_opened
+ update_overlays()
/obj/structure/closet/secure_closet/personal/cabinet/populate_contents()
new /obj/item/storage/backpack/satchel/withwallet( src )
@@ -72,8 +62,9 @@
//they can open all lockers, or nobody owns this, or they own this locker
locked = !locked
if(locked)
- icon_state = icon_locked
+ overlays += "locked"
else
+ overlays += "unlocked"
icon_state = icon_closed
registered_name = null
desc = initial(desc)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 07eee5bc80c..e861fb6e392 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/scientist
name = "scientist's locker"
req_access = list(ACCESS_TOX_STORAGE)
- icon_state = "secureres1"
- icon_closed = "secureres"
- icon_locked = "secureres1"
- icon_opened = "secureresopen"
- icon_broken = "secureresbroken"
- icon_off = "secureresoff"
+ icon_state = "science"
/obj/structure/closet/secure_closet/scientist/populate_contents()
new /obj/item/storage/backpack/science(src)
@@ -25,12 +20,7 @@
/obj/structure/closet/secure_closet/roboticist
name = "roboticist's locker"
req_access = list(ACCESS_ROBOTICS)
- icon_state = "secureres1"
- icon_closed = "secureres"
- icon_locked = "secureres1"
- icon_opened = "secureresopen"
- icon_broken = "secureresbroken"
- icon_off = "secureresoff"
+ icon_state = "science"
/obj/structure/closet/secure_closet/roboticist/populate_contents()
new /obj/item/storage/backpack(src)
@@ -47,12 +37,7 @@
/obj/structure/closet/secure_closet/RD
name = "research director's locker"
req_access = list(ACCESS_RD)
- icon_state = "rdsecure1"
- icon_closed = "rdsecure"
- icon_locked = "rdsecure1"
- icon_opened = "rdsecureopen"
- icon_broken = "rdsecurebroken"
- icon_off = "rdsecureoff"
+ icon_state = "rd"
/obj/structure/closet/secure_closet/RD/populate_contents()
new /obj/item/clothing/suit/bio_suit/scientist(src)
@@ -77,12 +62,7 @@
/obj/structure/closet/secure_closet/research_reagents
name = "research chemical storage closet"
desc = "Store dangerous chemicals in here."
- icon_state = "rchemical1"
- icon_closed = "rchemical"
- icon_locked = "rchemical1"
- icon_opened = "medicalopen"
- icon_broken = "rchemicalbroken"
- icon_off = "rchemicaloff"
+ icon_state = "rchemical"
req_access = list(ACCESS_TOX_STORAGE)
/obj/structure/closet/secure_closet/research_reagents/populate_contents()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 0e740548289..e672d3a9061 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -2,36 +2,30 @@
name = "secure locker"
desc = "It's an immobile card-locked storage unit."
icon = 'icons/obj/closet.dmi'
- icon_state = "secure1"
- density = 1
- opened = 0
- locked = 1
- broken = 0
+ icon_state = "secure"
+ density = TRUE
+ opened = FALSE
+ locked = TRUE
+ broken = FALSE
can_be_emaged = TRUE
max_integrity = 250
armor = list(MELEE = 30, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 80)
damage_deflection = 20
- icon_closed = "secure"
- var/icon_locked = "secure1"
- icon_opened = "secureopen"
- var/icon_broken = "securebroken"
- var/icon_off = "secureoff"
- wall_mounted = 0 //never solid (You can always pass over it)
/obj/structure/closet/secure_closet/can_open()
if(!..())
- return 0
+ return FALSE
if(locked)
- return 0
+ return FALSE
return ..()
/obj/structure/closet/secure_closet/close()
if(..())
if(broken)
- icon_state = icon_off
- return 1
+ update_icon()
+ return TRUE
else
- return 0
+ return FALSE
/obj/structure/closet/secure_closet/emp_act(severity)
for(var/obj/O in src)
@@ -78,9 +72,9 @@
if(!broken)
broken = TRUE
locked = FALSE
- icon_state = icon_off
- flick(icon_broken, src)
+ overlays += "sparking"
to_chat(user, "You break the lock on [src].")
+ addtimer(CALLBACK(src, .proc/update_icon), 1 SECONDS)
/obj/structure/closet/secure_closet/attack_hand(mob/user)
add_fingerprint(user)
@@ -103,17 +97,26 @@
else
to_chat(usr, "This mob type can't use this verb.")
-/obj/structure/closet/secure_closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot)
- overlays.Cut()
+/obj/structure/closet/secure_closet/update_icon()
if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- if(welded)
- overlays += "welded"
+ icon_state = icon_closed
+ update_overlays()
+ return
+ icon_state = icon_opened
+ update_overlays()
+
+/obj/structure/closet/secure_closet/update_overlays() //Putting the welded stuff in update_overlays() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot)
+ overlays.Cut()
+ if(opened)
+ return
+ if(welded)
+ overlays += "welded"
+ if(broken)
+ return
+ if(locked)
+ overlays += "locked"
else
- icon_state = icon_opened
+ overlays += "unlocked"
/obj/structure/closet/secure_closet/container_resist(mob/living/L)
var/breakout_time = 2 //2 minutes by default
@@ -141,14 +144,9 @@
//Well then break it!
desc = "It appears to be broken."
- icon_state = icon_off
- flick(icon_broken, src)
- sleep(10)
- flick(icon_broken, src)
- sleep(10)
- broken = 1
- locked = 0
- welded = 0
+ broken = TRUE
+ locked = FALSE
+ welded = FALSE
update_icon()
to_chat(usr, "You successfully break out!")
for(var/mob/O in viewers(L.loc))
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 57aa92d0d9e..ef25d32678c 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/captains
name = "captain's locker"
req_access = list(ACCESS_CAPTAIN)
- icon_state = "capsecure1"
- icon_closed = "capsecure"
- icon_locked = "capsecure1"
- icon_opened = "capsecureopen"
- icon_broken = "capsecurebroken"
- icon_off = "capsecureoff"
+ icon_state = "cap"
/obj/structure/closet/secure_closet/captains/populate_contents()
if(prob(50))
@@ -39,12 +34,7 @@
/obj/structure/closet/secure_closet/hop
name = "head of personnel's locker"
req_access = list(ACCESS_HOP)
- icon_state = "hopsecure1"
- icon_closed = "hopsecure"
- icon_locked = "hopsecure1"
- icon_opened = "hopsecureopen"
- icon_broken = "hopsecurebroken"
- icon_off = "hopsecureoff"
+ icon_state = "hop"
/obj/structure/closet/secure_closet/hop/populate_contents()
new /obj/item/clothing/glasses/hud/skills/sunglasses(src)
@@ -65,12 +55,7 @@
/obj/structure/closet/secure_closet/hop2
name = "head of personnel's attire"
req_access = list(ACCESS_HOP)
- icon_state = "hopsecure1"
- icon_closed = "hopsecure"
- icon_locked = "hopsecure1"
- icon_opened = "hopsecureopen"
- icon_broken = "hopsecurebroken"
- icon_off = "hopsecureoff"
+ icon_state = "hop"
/obj/structure/closet/secure_closet/hop2/populate_contents()
new /obj/item/clothing/under/rank/head_of_personnel(src)
@@ -91,12 +76,7 @@
/obj/structure/closet/secure_closet/hos
name = "head of security's locker"
req_access = list(ACCESS_HOS)
- icon_state = "hossecure1"
- icon_closed = "hossecure"
- icon_locked = "hossecure1"
- icon_opened = "hossecureopen"
- icon_broken = "hossecurebroken"
- icon_off = "hossecureoff"
+ icon_state = "hos"
/obj/structure/closet/secure_closet/hos/populate_contents()
if(prob(50))
@@ -130,12 +110,7 @@
/obj/structure/closet/secure_closet/warden
name = "warden's locker"
req_access = list(ACCESS_ARMORY)
- icon_state = "wardensecure1"
- icon_closed = "wardensecure"
- icon_locked = "wardensecure1"
- icon_opened = "wardensecureopen"
- icon_broken = "wardensecurebroken"
- icon_off = "wardensecureoff"
+ icon_state = "warden"
/obj/structure/closet/secure_closet/warden/populate_contents()
if(prob(50))
@@ -167,12 +142,7 @@
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
req_access = list(ACCESS_SECURITY)
- icon_state = "sec1"
- icon_closed = "sec"
- icon_locked = "sec1"
- icon_opened = "secopen"
- icon_broken = "secbroken"
- icon_off = "secoff"
+ icon_state = "sec"
/obj/structure/closet/secure_closet/security/populate_contents()
if(prob(50))
@@ -197,12 +167,7 @@
/obj/structure/closet/secure_closet/brigdoc
name = "brig physician's locker"
req_access = list(ACCESS_SECURITY)
- icon_state = "securemed1"
- icon_closed = "securemed"
- icon_locked = "securemed1"
- icon_opened = "securemedopen"
- icon_broken = "securemedbroken"
- icon_off = "securemedoff"
+ icon_state = "med"
/obj/structure/closet/secure_closet/brigdoc/populate_contents()
if(prob(50))
@@ -226,12 +191,7 @@
/obj/structure/closet/secure_closet/blueshield
name = "blueshield's locker"
req_access = list(ACCESS_BLUESHIELD)
- icon_state = "bssecure1"
- icon_closed = "bssecure"
- icon_locked = "bssecure1"
- icon_opened = "bssecureopen"
- icon_broken = "bssecurebroken"
- icon_off = "bssecureoff"
+ icon_state = "bs"
/obj/structure/closet/secure_closet/blueshield/populate_contents()
new /obj/item/storage/briefcase(src)
@@ -260,12 +220,7 @@
/obj/structure/closet/secure_closet/ntrep
name = "\improper Nanotrasen Representative's locker"
req_access = list(ACCESS_NTREP)
- icon_state = "ntsecure1"
- icon_closed = "ntsecure"
- icon_locked = "ntsecure1"
- icon_opened = "ntsecureopen"
- icon_broken = "ntsecurebroken"
- icon_off = "ntsecureoff"
+ icon_state = "ntr"
/obj/structure/closet/secure_closet/ntrep/populate_contents()
new /obj/item/book/manual/faxes(src)
@@ -317,12 +272,7 @@
/obj/structure/closet/secure_closet/detective
name = "detective's cabinet"
req_access = list(ACCESS_FORENSICS_LOCKERS)
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
+ icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
open_sound = 'sound/machines/wooden_closet_open.ogg'
@@ -352,19 +302,6 @@
new /obj/item/taperecorder(src)
new /obj/item/storage/box/tapes(src)
-/obj/structure/closet/secure_closet/detective/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
-
-
/obj/structure/closet/secure_closet/injection
name = "lethal injections locker"
req_access = list(ACCESS_SECURITY)
@@ -401,42 +338,10 @@
new /obj/item/clothing/head/powdered_wig (src)
new /obj/item/storage/briefcase(src)
-
-/obj/structure/closet/secure_closet/wall
- name = "wall locker"
- req_access = list(ACCESS_SECURITY)
- icon_state = "wall-locker1"
- density = 1
- icon_closed = "wall-locker"
- icon_locked = "wall-locker1"
- icon_opened = "wall-lockeropen"
- icon_broken = "wall-lockerbroken"
- icon_off = "wall-lockeroff"
-
- //too small to put a man in
- large = FALSE
-
-/obj/structure/closet/secure_closet/wall/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
-
/obj/structure/closet/secure_closet/magistrate
name = "\improper Magistrate's locker"
req_access = list(ACCESS_MAGISTRATE)
- icon_state = "magistratesecure1"
- icon_closed = "magistratesecure"
- icon_locked = "magistratesecure1"
- icon_opened = "magistratesecureopen"
- icon_broken = "magistratesecurebroken"
- icon_off = "magistratesecureoff"
+ icon_state = "magi"
/obj/structure/closet/secure_closet/magistrate/populate_contents()
new /obj/item/book/manual/faxes(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index b33b9fa24e4..4e350812d86 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -2,9 +2,6 @@
name = "armoury closet"
desc = "Why is this here?"
icon_state = "syndicate"
- icon_closed = "syndicate"
- icon_opened = "syndicateopen"
-
/obj/structure/closet/syndicate/personal
desc = "It's a storage unit for operative gear."
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index d8d3111fbe8..3b68fa565f5 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -16,8 +16,6 @@
name = "emergency closet"
desc = "It's a storage unit for emergency breathmasks and o2 tanks."
icon_state = "emergency"
- icon_closed = "emergency"
- icon_opened = "emergencyopen"
/obj/structure/closet/emcloset/anchored
anchored = TRUE
@@ -62,9 +60,7 @@
/obj/structure/closet/firecloset
name = "fire-safety closet"
desc = "It's a storage unit for fire-fighting supplies."
- icon_state = "firecloset"
- icon_closed = "firecloset"
- icon_opened = "fireclosetopen"
+ icon_state = "fire"
/obj/structure/closet/firecloset/populate_contents()
new /obj/item/extinguisher(src)
@@ -88,9 +84,7 @@
/obj/structure/closet/toolcloset
name = "tool closet"
desc = "It's a storage unit for tools."
- icon_state = "toolcloset"
- icon_closed = "toolcloset"
- icon_opened = "toolclosetopen"
+ icon_state = "eng_tool"
/obj/structure/closet/toolcloset/populate_contents()
if(prob(40))
@@ -131,9 +125,7 @@
/obj/structure/closet/radiation
name = "radiation suit closet"
desc = "It's a storage unit for rad-protective suits."
- icon_state = "radsuitcloset"
- icon_opened = "toolclosetopen"
- icon_closed = "radsuitcloset"
+ icon_state = "eng_rad"
/obj/structure/closet/radiation/populate_contents()
new /obj/item/geiger_counter(src)
@@ -146,9 +138,7 @@
/obj/structure/closet/bombcloset
name = "\improper EOD closet"
desc = "It's a storage unit for explosion-protective suits."
- icon_state = "bombsuit"
- icon_closed = "bombsuit"
- icon_opened = "bombsuitopen"
+ icon_state = "bomb"
/obj/structure/closet/bombcloset/populate_contents()
new /obj/item/clothing/suit/bomb_suit( src )
@@ -160,52 +150,10 @@
/obj/structure/closet/bombclosetsecurity
name = "\improper EOD closet"
desc = "It's a storage unit for explosion-protective suits."
- icon_state = "bombsuitsec"
- icon_closed = "bombsuitsec"
- icon_opened = "bombsuitsecopen"
+ icon_state = "bomb"
/obj/structure/closet/bombclosetsecurity/populate_contents()
new /obj/item/clothing/suit/bomb_suit/security( src )
new /obj/item/clothing/under/rank/security( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/head/bomb_hood/security( src )
-
-/*
- * Hydrant
- */
-/obj/structure/closet/hydrant //wall mounted fire closet
- name = "fire-safety closet"
- desc = "It's a storage unit for fire-fighting supplies."
- icon_state = "hydrant"
- icon_closed = "hydrant"
- icon_opened = "hydrant_open"
- anchored = 1
- density = 0
- wall_mounted = 1
-
-/obj/structure/closet/hydrant/populate_contents()
- new /obj/item/clothing/suit/fire/firefighter(src)
- new /obj/item/clothing/mask/gas(src)
- new /obj/item/flashlight(src)
- new /obj/item/tank/internals/oxygen/red(src)
- new /obj/item/extinguisher(src)
- new /obj/item/clothing/head/hardhat/red(src)
-
-/*
- * First Aid
- */
-/obj/structure/closet/medical_wall //wall mounted medical closet
- name = "first-aid closet"
- desc = "It's wall-mounted storage unit for first aid supplies."
- icon_state = "medical_wall"
- icon_closed = "medical_wall"
- icon_opened = "medical_wall_open"
- anchored = 1
- density = 0
- wall_mounted = 1
-
-/obj/structure/closet/medical_wall/update_icon()
- if(!opened)
- icon_state = icon_closed
- else
- icon_state = icon_opened
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index d9096b01ba5..5b3e55da77b 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -1,8 +1,8 @@
/obj/structure/closet/wardrobe
name = "wardrobe"
desc = "It's a storage unit for standard-issue Nanotrasen attire."
+ is_wardrobe = TRUE
icon_state = "blue"
- icon_closed = "blue"
/obj/structure/closet/wardrobe/generic
// Identical to the base wardrobe, aside from containing some stuff.
@@ -22,7 +22,6 @@
/obj/structure/closet/wardrobe/red
name = "security wardrobe"
icon_state = "red"
- icon_closed = "red"
/obj/structure/closet/wardrobe/populate_contents()
new /obj/item/storage/backpack/duffel/security(src)
@@ -58,7 +57,6 @@
/obj/structure/closet/redcorp
name = "corporate security wardrobe"
icon_state = "red"
- icon_closed = "red"
/obj/structure/closet/redcorp/populate_contents()
new /obj/item/clothing/under/rank/security/corp(src)
@@ -71,7 +69,6 @@
/obj/structure/closet/wardrobe/pink
name = "pink wardrobe"
icon_state = "pink"
- icon_closed = "pink"
/obj/structure/closet/wardrobe/pink/populate_contents()
new /obj/item/clothing/under/color/pink(src)
@@ -84,7 +81,6 @@
/obj/structure/closet/wardrobe/black
name = "black wardrobe"
icon_state = "black"
- icon_closed = "black"
/obj/structure/closet/wardrobe/black/populate_contents()
new /obj/item/clothing/under/color/black(src)
@@ -105,7 +101,6 @@
/obj/structure/closet/wardrobe/green
name = "green wardrobe"
icon_state = "green"
- icon_closed = "green"
/obj/structure/closet/wardrobe/green/populate_contents()
new /obj/item/clothing/under/color/green(src)
@@ -118,7 +113,6 @@
/obj/structure/closet/wardrobe/xenos
name = "xenos wardrobe"
icon_state = "green"
- icon_closed = "green"
/obj/structure/closet/wardrobe/xenos/populate_contents()
new /obj/item/clothing/suit/unathi/mantle(src)
@@ -135,7 +129,6 @@
name = "prison wardrobe"
desc = "It's a storage unit for Nanotrasen-regulation prisoner attire."
icon_state = "orange"
- icon_closed = "orange"
/obj/structure/closet/wardrobe/orange/populate_contents()
new /obj/item/clothing/under/color/orange/prison(src)
@@ -149,7 +142,6 @@
/obj/structure/closet/wardrobe/yellow
name = "yellow wardrobe"
icon_state = "yellow"
- icon_closed = "yellow"
/obj/structure/closet/wardrobe/yellow/populate_contents()
new /obj/item/clothing/under/color/yellow(src)
@@ -162,8 +154,7 @@
/obj/structure/closet/wardrobe/atmospherics_yellow
name = "atmospherics wardrobe"
- icon_state = "atmostech"
- icon_closed = "atmostech"
+ icon_state = "atmos_wardrobe"
/obj/structure/closet/wardrobe/atmospherics_yellow/populate_contents()
new /obj/item/clothing/under/rank/atmospheric_technician(src)
@@ -186,8 +177,7 @@
/obj/structure/closet/wardrobe/engineering_yellow
name = "engineering wardrobe"
- icon_state = "engineer"
- icon_closed = "engineer"
+ icon_state = "yellow"
/obj/structure/closet/wardrobe/engineering_yellow/populate_contents()
new /obj/item/clothing/under/rank/engineer(src)
@@ -210,7 +200,6 @@
/obj/structure/closet/wardrobe/white
name = "white wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/white/populate_contents()
new /obj/item/clothing/under/color/white(src)
@@ -223,7 +212,6 @@
/obj/structure/closet/wardrobe/medical_white
name = "medical doctor's wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/medical_white/populate_contents()
new /obj/item/clothing/under/rank/nursesuit (src)
@@ -252,7 +240,6 @@
/obj/structure/closet/wardrobe/pjs
name = "Pajama wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/pjs/populate_contents()
new /obj/item/clothing/under/pj/red(src)
@@ -268,7 +255,6 @@
/obj/structure/closet/wardrobe/toxins_white
name = "toxins wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/toxins_white/populate_contents()
new /obj/item/clothing/under/rank/scientist(src)
@@ -291,7 +277,6 @@
/obj/structure/closet/wardrobe/robotics_black
name = "robotics wardrobe"
icon_state = "black"
- icon_closed = "black"
/obj/structure/closet/wardrobe/robotics_black/populate_contents()
new /obj/item/clothing/under/rank/roboticist(src)
@@ -309,7 +294,6 @@
/obj/structure/closet/wardrobe/chemistry_white
name = "chemistry wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/chemistry_white/populate_contents()
new /obj/item/clothing/under/rank/chemist(src)
@@ -333,7 +317,6 @@
/obj/structure/closet/wardrobe/genetics_white
name = "genetics wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/genetics_white/populate_contents()
new /obj/item/clothing/under/rank/geneticist(src)
@@ -351,7 +334,6 @@
/obj/structure/closet/wardrobe/virology_white
name = "virology wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/virology_white/populate_contents()
new /obj/item/clothing/under/rank/virologist(src)
@@ -373,7 +355,6 @@
/obj/structure/closet/wardrobe/medic_white
name = "medical wardrobe"
icon_state = "white"
- icon_closed = "white"
/obj/structure/closet/wardrobe/medic_white/populate_contents()
new /obj/item/clothing/under/rank/medical(src)
@@ -400,7 +381,6 @@
/obj/structure/closet/wardrobe/grey
name = "grey wardrobe"
icon_state = "grey"
- icon_closed = "grey"
/obj/structure/closet/wardrobe/grey/populate_contents()
new /obj/item/clothing/under/color/grey(src)
@@ -423,7 +403,6 @@
/obj/structure/closet/wardrobe/mixed
name = "mixed wardrobe"
icon_state = "mixed"
- icon_closed = "mixed"
/obj/structure/closet/wardrobe/mixed/populate_contents()
new /obj/item/clothing/under/color/blue(src)
@@ -444,7 +423,6 @@
/obj/structure/closet/wardrobe/coroner
name = "coroner wardrobe"
icon_state = "black"
- icon_closed = "black"
/obj/structure/closet/wardrobe/coroner/populate_contents()
if(prob(50))
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index dbec7e34324..9ca68ec2f6f 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -41,12 +41,7 @@
/obj/structure/closet/secure_closet/miner
name = "miner's equipment"
- icon_state = "miningsec1"
- icon_closed = "miningsec"
- icon_locked = "miningsec1"
- icon_opened = "miningsecopen"
- icon_broken = "miningsecbroken"
- icon_off = "miningsecoff"
+ icon_state = "mining"
req_access = list(ACCESS_MINING)
/obj/structure/closet/secure_closet/miner/populate_contents()
diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi
index 83cde24a8a468aa9ec49b834bbd3265ed5a736fa..a6f2a064214a29d33d4d33f01efe80b9a894d0f5 100644
GIT binary patch
literal 67817
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