diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index c03b3215122..00c4f541abc 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -1139,7 +1139,6 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
contains = list(/obj/item/clothing/suit/pirate,
/obj/item/clothing/suit/judgerobe,
/obj/item/clothing/accessory/wcoat,
- /obj/item/clothing/suit/hastur,
/obj/item/clothing/suit/holidaypriest,
/obj/item/clothing/suit/nun,
/obj/item/clothing/suit/imperium_monk,
diff --git a/code/datums/trading/misc.dm b/code/datums/trading/misc.dm
index c982728bf67..ece201b9068 100644
--- a/code/datums/trading/misc.dm
+++ b/code/datums/trading/misc.dm
@@ -136,7 +136,6 @@
/obj/item/shield/buckler = TRADER_THIS_TYPE,
/obj/item/clothing/head/redcoat = TRADER_THIS_TYPE,
/obj/item/clothing/head/powdered_wig = TRADER_THIS_TYPE,
- /obj/item/clothing/head/hasturhood = TRADER_THIS_TYPE,
/obj/item/clothing/head/helmet/gladiator = TRADER_THIS_TYPE,
/obj/item/clothing/head/plaguedoctorhat = TRADER_THIS_TYPE,
/obj/item/clothing/head/helmet/unathi = TRADER_THIS_TYPE,
diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm
index b768359072e..61ee0403901 100644
--- a/code/game/objects/items/stacks/wrap.dm
+++ b/code/game/objects/items/stacks/wrap.dm
@@ -5,6 +5,7 @@
icon_state = "wrap_paper"
singular_name = "square unit"
amount = 20.0
+ drop_sound = 'sound/items/drop/wrapper.ogg'
/obj/item/stack/wrapping_paper/attackby(obj/item/W, mob/user)
..()
diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm
index c616a66dff5..a63a35303bb 100644
--- a/code/game/objects/items/weapons/material/shards.dm
+++ b/code/game/objects/items/weapons/material/shards.dm
@@ -16,6 +16,7 @@
default_material = "glass"
unbreakable = 1 //It's already broken.
drops_debris = 0
+ drop_sound = 'sound/effects/glass_step.ogg'
/obj/item/material/shard/set_material(var/new_material)
..(new_material)
@@ -63,7 +64,7 @@
if(M.buckled) //wheelchairs, office chairs, rollerbeds
return
- to_chat(M, "You step on \the [src]!")
+ to_chat(M, span("danger", "You step on \the [src]!"))
playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds
if(ishuman(M))
var/mob/living/carbon/human/H = M
diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm
index 9470adf358e..d963cb2edb4 100644
--- a/code/game/objects/items/weapons/mop.dm
+++ b/code/game/objects/items/weapons/mop.dm
@@ -13,6 +13,8 @@
var/mopping = 0
var/mopcount = 0
var/cleantime = 25
+ var/last_clean
+ var/clean_msg = FALSE
/obj/item/mop/Initialize()
. = ..()
@@ -27,17 +29,23 @@
if(!proximity) return
if(istype(A, /turf) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune))
if(reagents.total_volume < 1)
- to_chat(user, "Your mop is dry!")
+ if(clean_msg)
+ to_chat(user, span("notice", "Your mop is dry!"))
return
-
- user.visible_message("[user] begins to mop \the [get_turf(A)].")
+ if (!(last_clean && world.time < last_clean + 120)) //spam is bad
+ user.visible_message(span("warning", "[user] begins to mop \the [get_turf(A)]."))
+ clean_msg = TRUE
+ last_clean = world.time
+ else
+ clean_msg = FALSE
playsound(loc, 'sound/effects/mop.ogg', 25, 1)
if(do_after(user, cleantime))
var/turf/T = get_turf(A)
if(T)
T.clean(src, user)
- to_chat(user, "You have finished mopping!")
+ if(clean_msg)
+ to_chat(user, span("notice", "You have finished mopping!"))
update_icon()
@@ -81,7 +89,7 @@
START_PROCESSING(SSprocessing, src)
else
STOP_PROCESSING(SSprocessing,src)
- to_chat(user, "You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position.")
+ to_chat(user, span("notice", "You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position."))
playsound(user, 'sound/machines/click.ogg', 25, 1)
/obj/item/mop/advanced/process()
@@ -90,10 +98,9 @@
/obj/item/mop/advanced/examine(mob/user)
..()
- to_chat(user, "The condenser switch is set to [refill_enabled ? "ON" : "OFF"].")
+ to_chat(user, span("notice", "\The condenser switch is set to [refill_enabled ? "ON" : "OFF"]."))
/obj/item/mop/advanced/Destroy()
if(refill_enabled)
STOP_PROCESSING(SSprocessing, src)
return ..()
-
diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm
index 67b92355a76..61da3bd9558 100644
--- a/code/game/objects/items/weapons/soap.dm
+++ b/code/game/objects/items/weapons/soap.dm
@@ -13,6 +13,8 @@
throw_range = 20
flags = OPENCONTAINER
var/key_data
+ var/clean_msg
+ var/last_clean
drop_sound = 'sound/misc/slip.ogg'
/obj/item/soap/New()
@@ -27,7 +29,7 @@
/obj/item/soap/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/key))
if(!key_data)
- to_chat(user, "You imprint \the [I] into \the [src].")
+ to_chat(user, span("notice", "You imprint \the [I] into \the [src]."))
var/obj/item/key/K = I
key_data = K.key_data
update_icon()
@@ -49,22 +51,28 @@
//I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing.
//So this is a workaround. This also makes more sense from an IC standpoint. ~Carn
if(user.client && (target in user.client.screen))
- to_chat(user, "You need to take that [target.name] off before cleaning it.")
+ to_chat(user, span("notice", "You need to take that [target.name] off before cleaning it."))
else if(istype(target,/obj/structure/sink) || istype(target,/obj/structure/sink))
- to_chat(user, "You wet \the [src] in the sink.")
+ to_chat(user, span("notice", "You wet \the [src] in the sink."))
wet()
else if (istype(target, /obj/structure/mopbucket) || istype(target, /obj/item/reagent_containers/glass) || istype(target, /obj/structure/reagent_dispensers/watertank))
if (target.reagents && target.reagents.total_volume)
- to_chat(user, "You wet \the [src] in the [target].")
+ to_chat(user, span("notice", "You wet \the [src] in the [target]."))
wet()
else
to_chat(user, "\The [target] is empty!")
else
- to_chat(user, "You start scrubbing the [target.name]")
+ if (!(last_clean && world.time < last_clean + 120))
+ to_chat(user, "You start scrubbing the [target.name]")
+ clean_msg = TRUE
+ last_clean = world.time
+ else
+ clean_msg = FALSE
playsound(loc, 'sound/effects/mop.ogg', 25, 1)
if (do_after(user, 25, needhand = 0))
target.clean_blood()
- to_chat(user, "You scrub \the [target.name] out.")
+ if(clean_msg)
+ to_chat(user, span("notice", "You scrub \the [target.name] out."))
if(istype(target, /turf) || istype(target, /obj/effect/decal/cleanable) || istype(target, /obj/effect/overlay))
var/turf/T = get_turf(target)
if(T)
@@ -74,7 +82,7 @@
//attack_as_weapon
/obj/item/soap/attack(mob/living/target, mob/living/user, var/target_zone)
if(target && user && ishuman(target) && ishuman(user) && !target.stat && !user.stat && user.zone_sel &&user.zone_sel.selecting == BP_MOUTH )
- user.visible_message("\The [user] washes \the [target]'s mouth out with soap!")
+ user.visible_message(span("danger", "\The [user] washes \the [target]'s mouth out with soap!"))
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN) //prevent spam
return
..()
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 115df850005..ee7dc8efc6d 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -43,6 +43,7 @@
var/base_desc = "The naked hull."
var/base_icon = 'icons/turf/flooring/plating.dmi'
var/base_icon_state = "plating"
+ var/last_clean //for clean log spam.
// Parent code is duplicated in here instead of ..() for performance reasons.
// There's ALSO a copy of this in mine_turfs.dm!
@@ -322,9 +323,11 @@ var/const/enterloopsanity = 100
var/obj/effect/rune/R = O
// Only show message for visible runes
if (R.visibility)
- to_chat(user, "No matter how well you wash, the bloody symbols remain!")
+ to_chat(user, span("warning", "No matter how well you wash, the bloody symbols remain!"))
else
- to_chat(user, "\The [source] is too dry to wash that.")
+ if( !(last_clean && world.time < last_clean + 100) )
+ to_chat(user, span("warning", "\The [source] is too dry to wash that."))
+ last_clean = world.time
source.reagents.trans_to_turf(src, 1, 10) //10 is the multiplier for the reaction effect. probably needed to wet the floor properly.
/turf/proc/update_blood_overlays()
@@ -436,7 +439,7 @@ var/const/enterloopsanity = 100
var/obj/item/organ/external/lhand = H.organs_by_name[BP_L_HAND]
tally += limbCheck(lhand)
-
+
var/obj/item/organ/external/rfoot = H.organs_by_name[BP_R_FOOT]
tally += limbCheck(rfoot)
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 663aefb761c..13400a9bd3a 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -124,13 +124,6 @@
permeability_coefficient = 0.01
siemens_coefficient = 0.9
-/obj/item/clothing/head/hasturhood
- name = "hastur's hood"
- desc = "It's unspeakably stylish"
- icon_state = "hasturhood"
- flags_inv = BLOCKHAIR
- body_parts_covered = HEAD|FACE|EYES
-
/obj/item/clothing/head/nursehat
name = "nurse's hat"
desc = "It allows quick identification of trained medical personnel."
diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm
index a2434584e54..2200e1a25c8 100644
--- a/code/modules/detectivework/tools/rag.dm
+++ b/code/modules/detectivework/tools/rag.dm
@@ -31,6 +31,8 @@
var/burn_time = 20 //if the rag burns for too long it turns to ashes
var/cleantime = 30
drop_sound = 'sound/items/drop/clothing.ogg'
+ var/last_clean
+ var/clean_msg = FALSE
/obj/item/reagent_containers/glass/rag/Initialize()
. = ..()
@@ -41,9 +43,9 @@
STOP_PROCESSING(SSprocessing, src) //so we don't continue turning to ash while gc'd
return ..()
-/obj/item/reagent_containers/glass/rag/attack_self(mob/user as mob)
+/obj/item/reagent_containers/glass/rag/attack_self(mob/user)
if(on_fire)
- user.visible_message("\The [user] stamps out [src].", "You stamp out [src].")
+ user.visible_message(span("warning", "\The [user] stamps out \the [src]."), span("warning", "You stamp out \the [src]."))
user.unEquip(src)
extinguish()
else
@@ -55,9 +57,9 @@
if(F.lit)
ignite()
if(on_fire)
- visible_message("\The [user] lights [src] with [W].")
+ visible_message(span("warning", "\The [user] lights \the [src] with \the [W]."))
else
- to_chat(user, "You manage to singe [src], but fail to light it.")
+ to_chat(user, span("warning", "You manage to singe \the [src], but fail to light it."))
. = ..()
update_name()
@@ -93,35 +95,41 @@
if(reagents.total_volume)
var/target_text = trans_dest? "\the [trans_dest]" : "\the [user.loc]"
- user.visible_message("\The [user] begins to wring out [src] over [target_text].", "You begin to wring out [src] over [target_text].")
+ user.visible_message(span("danger", "\The [user] begins to wring out \the [src] over \the [target_text]."), span("notice", "You begin to wring out \the [src] over \the [target_text]."))
if(do_after(user, reagents.total_volume*5)) //50 for a fully soaked rag
if(trans_dest)
reagents.trans_to(trans_dest, reagents.total_volume)
else
reagents.splash(user.loc, reagents.total_volume)
- user.visible_message("\The [user] wrings out [src] over [target_text].", "You finish to wringing out [src].")
+ user.visible_message(span("danger", "\The [user] wrings out \the [src] over \the [target_text]."), span("notice", "You finish wringing out \the [src]."))
update_name()
update_icon()
/obj/item/reagent_containers/glass/rag/proc/wipe_down(atom/A, mob/user)
if(!reagents.total_volume)
- to_chat(user, "The [initial(name)] is dry!")
+ to_chat(user, span("warning", "\The [initial(name)] is dry!"))
else
- user.visible_message("\The [user] starts to wipe down [A] with [src]!")
+ if ( !(last_clean && world.time < last_clean + 120) )
+ user.visible_message("\The [user] starts to wipe down \the [A] with \the [src]!")
+ clean_msg = TRUE
+ last_clean = world.time
+ else
+ clean_msg = FALSE
playsound(loc, 'sound/effects/mop.ogg', 25, 1)
reagents.splash(A, 1) //get a small amount of liquid on the thing we're wiping.
update_name()
update_icon()
if(do_after(user,cleantime))
- user.visible_message("\The [user] finishes wiping off \the [A]!")
+ if(clean_msg)
+ user.visible_message("\The [user] finishes wiping off \the [A]!")
A.clean_blood()
/obj/item/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag)
if(isliving(target))
var/mob/living/M = target
if(on_fire)
- user.visible_message("\The [user] hits [target] with [src]!",)
+ user.visible_message(span("danger", "\The [user] hits \the [target] with \the [src]!"))
user.do_attack_animation(src)
M.IgniteMob()
else if(ishuman(M))
@@ -177,12 +185,12 @@
if(istype(A, /obj/structure/reagent_dispensers) || istype(A, /obj/structure/mopbucket) || istype(A, /obj/item/reagent_containers/glass))
if(!reagents.get_free_space())
- to_chat(user, "\The [src] is already soaked.")
+ to_chat(user, span("warning", "\The [src] is already soaked."))
return
if(A.reagents && A.reagents.trans_to_obj(src, reagents.maximum_volume))
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
- user.visible_message("\The [user] soaks [src] using [A].", "You soak [src] using [A].")
+ user.visible_message(span("notice", "\The [user] soaks \the [src] using \the [A]."), span("notice", "You soak \the [src] using \the [A]."))
update_name()
update_icon()
return
@@ -215,7 +223,7 @@
//also copied from matches
if(reagents.get_reagent_amount("phoron")) // the phoron explodes when exposed to fire
- visible_message("\The [src] conflagrates violently!")
+ visible_message(span("danger", "\The [src] conflagrates violently!"))
var/datum/effect/effect/system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount("phoron") / 2.5, 1), get_turf(src), 0, 0)
e.start()
@@ -236,7 +244,7 @@
//rags sitting around with 1 second of burn time left is dumb.
//ensures players always have a few seconds of burn time left when they light their rag
if(burn_time <= 5)
- visible_message("\The [src] falls apart!")
+ visible_message(span("warning", "\The [src] falls apart!"))
new /obj/effect/decal/cleanable/ash(get_turf(src))
qdel(src)
update_name()
@@ -244,7 +252,7 @@
/obj/item/reagent_containers/glass/rag/process()
if(!can_ignite())
- visible_message("\The [src] burns out.")
+ visible_message(span("warning", "\The [src] burns out."))
extinguish()
//copied from matches
@@ -276,4 +284,3 @@
possible_transfer_amounts = list(5)
volume = 10
cleantime = 15
-
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 37e1643aabe..19a1428913c 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -126,7 +126,7 @@
/obj/item/paper/attack_self(mob/living/user as mob)
if(user.a_intent == I_HURT)
if(icon_state == "scrap")
- user.show_message("\The [src] is already crumpled.")
+ user.show_message(span("warning", "\The [src] is already crumpled."))
return
//crumple dat paper
info = stars(info,85)
@@ -172,8 +172,8 @@
/obj/item/paper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob, var/target_zone)
if(target_zone == BP_EYES)
- user.visible_message("You show the paper to [M]. ", \
- " [user] holds up a paper and shows it to [M]. ")
+ user.visible_message(span("notice", "You show the paper to [M]."), \
+ span("notice", "[user] holds up a paper and shows it to [M]."))
M.examinate(src)
else if(target_zone == BP_MOUTH) // lipstick wiping
@@ -184,11 +184,11 @@
H.lip_style = null
H.update_body()
else
- user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \
- "You begin to wipe off [H]'s lipstick.")
+ user.visible_message(span("warning", "[user] begins to wipe [H]'s lipstick off with \the [src]."), \
+ span("notice", "You begin to wipe off [H]'s lipstick."))
if(do_after(user, 10) && do_after(H, 10, 0)) //user needs to keep their active hand, H does not.
- user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \
- "You wipe off [H]'s lipstick.")
+ user.visible_message(span("notice", "[user] wipes [H]'s lipstick off with \the [src]."), \
+ span("notice", "You wipe off [H]'s lipstick."))
H.lip_style = null
H.update_body()
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 2ce3526bf74..19f68fe7f82 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -41,16 +41,23 @@
to_chat(user, span("warning", "\The [src] must be anchored to the ground to operate!"))
return
if(paperamount == max_paper)
- to_chat(user, "\The [src] is full; please empty it before you continue.")
+ to_chat(user, span("warning", "\The [src] is full; please empty it before you continue."))
return
if (paper_result > 0)
paperamount += paper_result
+ if(W.icon_state == "scrap")
+ flick("papershredder_s_on", src)
+ else if(W.icon_state == "paper_words")
+ flick("papershredder_w_on", src)
+ else if(W.icon_state == "paper_plane")
+ flick("papershredder_p_on", src)
+ else
+ flick("papershredder_on", src)
qdel(W)
playsound(src.loc, 'sound/bureaucracy/papershred.ogg', 75, 1)
to_chat(user, span("notice", "You shred the paper."))
- flick("papershredder_on", src)
if(paperamount > max_paper)
- to_chat(user, "\The [src] was too full, and shredded paper goes everywhere!")
+ to_chat(user, span("danger", "\The [src] was too full, and shredded paper goes everywhere!"))
for(var/i=(paperamount-max_paper);i>0;i--)
var/obj/item/shreddedp/SP = get_shredded_paper()
SP.forceMove(get_turf(src))
@@ -69,7 +76,7 @@
return
if(!paperamount)
- to_chat(usr, "\The [src] is empty.")
+ to_chat(usr, span("notice", "\The [src] is empty."))
return
empty_bin(usr)
@@ -81,7 +88,7 @@
empty_into = null
if(empty_into && empty_into.contents.len >= empty_into.storage_slots)
- to_chat(user, "\The [empty_into] is full.")
+ to_chat(user, span("notice", "\The [empty_into] is full."))
return
while(paperamount)
@@ -93,12 +100,12 @@
break
if(empty_into)
if(paperamount)
- to_chat(user, "You fill \the [empty_into] with as much shredded paper as it will carry.")
+ to_chat(user, span("notice", "You fill \the [empty_into] with as much shredded paper as it will carry."))
else
- to_chat(user, "You empty \the [src] into \the [empty_into].")
+ to_chat(user, span("notice", "You empty \the [src] into \the [empty_into]."))
else
- to_chat(user, "You empty \the [src].")
+ to_chat(user, span("notice", "You empty \the [src]."))
update_icon()
/obj/machinery/papershredder/proc/get_shredded_paper()
@@ -149,22 +156,21 @@
if(istype(P, /obj/item/flame/lighter/zippo))
class = "rose"
- user.visible_message("[user] holds \the [P] up to \the [src], it looks like \he's trying to burn it!", \
- "You hold \the [P] up to \the [src], burning it slowly.")
+ user.visible_message(span("[class]", "[user] holds \the [P] up to \the [src], trying to burn it!"), \
+ span("[class]", "You hold \the [P] up to \the [src], burning it slowly."))
playsound(src.loc, 'sound/bureaucracy/paperburn.ogg', 50, 1)
flick("shredp_onfire", src) //no do_after here, so people can walk n' burn at the same time. -wezzy
spawn(20)
if(get_dist(src, user) < 2 && user.get_active_hand() == P)
- user.visible_message("[user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.", \
- "You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.")
+ user.visible_message(span("[class]", "[user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap."), \
+ span("[class]", "You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap."))
new /obj/effect/decal/cleanable/ash(src.loc)
qdel(src)
else
to_chat(user, span("warning", "You must hold \the [P] steady to burn \the [src]."))
-
/obj/item/shreddedp
name = "shredded paper"
desc = "The remains of a private, confidential, or otherwise sensitive document."
diff --git a/html/changelogs/wezzy_randomfixes.yml b/html/changelogs/wezzy_randomfixes.yml
new file mode 100644
index 00000000000..d3426b2b6bf
--- /dev/null
+++ b/html/changelogs/wezzy_randomfixes.yml
@@ -0,0 +1,47 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: Wowzewow (Wezzy)
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - tweak: "Tweaks headset sprites - should be less visible from the back now."
+ - bugfix: "Fixes spoon inhands."
+ - tweak: "Mops, rags, and soap should no longer spam logs as much anymore."
+ - tweak: "Yellow buttons on the paper shredder have been removed on account of looking too similar to a maintenance panel."
+ - imageadd: "New animation for shredding different states of paper."
+ - bugfix: "Justice hats have been fixed properly this time."
+ - tweak: "Cigar case has been made measurably smaller."
diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi
index 25fc5787d3f..7456ab9017d 100644
Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index a88e92bf9d1..b5570c2eb91 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi
index 9415a131335..2adf7f22142 100644
Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ
diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi
index 1bc48617751..ee82e961bf8 100644
Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index 7b56e93cf1b..1b1410e25dc 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/icons/obj/cigs_lighters.dmi b/icons/obj/cigs_lighters.dmi
index da2c1739549..6fef2452fcb 100644
Binary files a/icons/obj/cigs_lighters.dmi and b/icons/obj/cigs_lighters.dmi differ