diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 5e1a551cecf..3b27308f05c 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -24,9 +24,39 @@
/obj/structure/closet/initialize()
if(!opened) // if closed, any item at the crate's loc is put in the contents
- for(var/obj/item/I in src.loc)
+ var/obj/item/I
+ for(I in src.loc)
if(I.density || I.anchored || I == src) continue
I.loc = src
+ // adjust locker size to hold all items with 5 units of free store room
+ var/content_size = 0
+ for(I in src.contents)
+ content_size += Ceiling(I.w_class/2)
+ if(content_size > storage_capacity-5)
+ storage_capacity = content_size + 5
+
+
+/obj/structure/closet/examine(mob/user)
+ if(get_dist(src, user) > 1)
+ return ..(user)
+
+ if(opened)
+ var/content_size = 0
+ for(var/obj/item/I in src.contents)
+ if(!I.anchored)
+ content_size += Ceiling(I.w_class/2)
+ if(!content_size)
+ user << "It is empty."
+ else if(storage_capacity > content_size*4)
+ user << "It is barely filled."
+ else if(storage_capacity > content_size*2)
+ user << "It is less than half full."
+ else if(storage_capacity > content_size)
+ user << "There is still some free space."
+ else
+ user << "It is full."
+
+
/obj/structure/closet/alter_health()
return get_turf(src)
@@ -329,25 +359,25 @@
escapee.next_move = world.time + 100
escapee.last_special = world.time + 100
escapee << "You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)"
-
+
visible_message("The [src] begins to shake violently!")
breakout = 1 //can't think of a better way to do this right now.
for(var/i in 1 to (6*breakout_time * 2)) //minutes * 6 * 5seconds * 2
playsound(src.loc, 'sound/effects/grillehit.ogg', 100, 1)
animate_shake()
-
+
if(!do_after(escapee, 50)) //5 seconds
breakout = 0
return
- if(!escapee || escapee.stat || escapee.loc != src)
+ if(!escapee || escapee.stat || escapee.loc != src)
breakout = 0
return //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened
//Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'...
if(!req_breakout())
breakout = 0
return
-
+
//Well then break it!
breakout = 0
escapee << "You successfully break out!"
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 37eec452394..f0c96695dcb 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -166,7 +166,7 @@
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
- req_access = list(access_security)
+ req_access = list(access_brig)
icon_state = "sec1"
icon_closed = "sec"
icon_locked = "sec1"