diff --git a/code/defines/obj/closet.dm b/code/defines/obj/closet.dm index 89ea01ecc33..b31b72fa50a 100644 --- a/code/defines/obj/closet.dm +++ b/code/defines/obj/closet.dm @@ -4,14 +4,16 @@ icon = 'icons/obj/closet.dmi' icon_state = "closed" density = 1 + flags = FPRINT var/icon_closed = "closed" var/icon_opened = "open" var/opened = 0 var/welded = 0 var/wall_mounted = 0 //never solid (You can always pass over it) - flags = FPRINT var/health = 100 var/lastbang + var/storage_capacity = 20 //This is so that someone can't pack hundreds of items in a locker/crate + //then open it in a populated area to crash clients. /obj/structure/closet/acloset name = "strange closet" diff --git a/code/game/objects/closets.dm b/code/game/objects/closets.dm index 15a97161fa5..03362e2c2ba 100644 --- a/code/game/objects/closets.dm +++ b/code/game/objects/closets.dm @@ -50,11 +50,18 @@ if(!src.can_close()) return 0 + var/itemcount = 0 + for(var/obj/item/I in src.loc) + if(itemcount >= storage_capacity) + break if(!I.anchored) I.loc = src + itemcount++ for(var/mob/M in src.loc) + if(itemcount >= storage_capacity) + break if(istype (M, /mob/dead/observer)) continue if(M.buckled) @@ -65,6 +72,8 @@ M.client.eye = src M.loc = src + itemcount++ + src.icon_state = src.icon_closed src.opened = 0 if(istype(src, /obj/structure/closet/body_bag)) diff --git a/code/game/objects/crates.dm b/code/game/objects/crates.dm index 3600d722b49..e2bb02b4744 100644 --- a/code/game/objects/crates.dm +++ b/code/game/objects/crates.dm @@ -235,11 +235,19 @@ /obj/structure/closet/crate/open() playsound(src.loc, 'click.ogg', 15, 1, -3) + var/itemcount = 0 + for(var/obj/O in src) + if(itemcount >= storage_capacity) + break O.loc = get_turf(src) + itemcount++ for(var/mob/M in src) + if(itemcount >= storage_capacity) + break M.loc = get_turf(src) + itemcount++ icon_state = icon_opened src.opened = 1 diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 5a9c56602a5..df88db73d7a 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -2,10 +2,7 @@ /mob/living/carbon/human/whisper(message as text) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) - if (!message) - return - - if (silent) + if (!message || silent || miming) return log_whisper("[src.name]/[src.key] : [message]")