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 4c9095fb4df..9625cff53cd 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
@@ -14,6 +14,28 @@
wall_mounted = 0 //never solid (You can always pass over it)
health = 200
+/obj/structure/closet/secure_closet/examine(mob/user)
+ ..()
+ if(broken || opened || !ishuman(user))
+ return //Monkeys don't get a message, nor does anyone ief it's open or emagged
+ else
+ user << "Alt-click the locker to [locked ? "unlock" : "lock"] it."
+
+/obj/structure/closet/secure_closet/AltClick(var/mob/user)
+ ..()
+ if(!in_range(src, user))
+ return
+ if(!ishuman(user))
+ user << "You have no idea how this thing is supposed to work."
+ return
+ if(user.stat || !user.canmove || user.restrained() || broken)
+ user << "You can't do that right now."
+ return
+ if(src.opened)
+ return
+ else
+ togglelock(user)
+
/obj/structure/closet/secure_closet/can_open()
if(src.locked || src.welded)
return 0
@@ -101,26 +123,6 @@
/obj/structure/closet/secure_closet/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/structure/closet/secure_closet/verb/verb_togglelock()
- set src in oview(1) // One square distance
- set category = "Object"
- set name = "Toggle Lock"
-
- if(!usr.canmove || usr.stat || usr.restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain
- return
-
- if(get_dist(usr, src) != 1)
- return
-
- if(src.broken)
- return
-
- if (ishuman(usr))
- if (!opened)
- togglelock(usr)
- else
- 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()
if(!opened)
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index e16c312e45c..02fc5c460f7 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -11,19 +11,31 @@
src.flipped=0
..()
- verb/flip()
+ verb/flipcap()
set category = "Object"
set name = "Flip cap"
- set src in usr
- if(usr.canmove && !usr.stat && !usr.restrained())
- src.flipped = !src.flipped
- if(src.flipped)
- icon_state = "[item_color]soft_flipped"
- usr << "You flip the hat backwards."
- else
- icon_state = "[item_color]soft"
- usr << "You flip the hat back in normal position."
- usr.update_inv_head(0) //so our mob-overlays update
+
+ flip(usr)
+
+
+/obj/item/clothing/head/soft/AltClick(var/mob/user)
+ flip(user)
+
+
+/obj/item/clothing/head/soft/proc/flip(var/mob/user)
+ if(user.canmove && !user.stat && !user.restrained())
+ src.flipped = !src.flipped
+ if(src.flipped)
+ icon_state = "[item_color]soft_flipped"
+ user << "You flip the hat backwards."
+ else
+ icon_state = "[item_color]soft"
+ user << "You flip the hat back in normal position."
+ usr.update_inv_head(0) //so our mob-overlays update
+
+/obj/item/clothing/head/soft/examine(mob/user)
+ ..()
+ user << "Alt-click the cap to flip it [flipped ? "forwards" : "backwards"]."
/obj/item/clothing/head/soft/red
name = "red cap"
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index d5ed2dc454a..da10a0170de 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -15,10 +15,17 @@
/obj/item/clothing/mask/breath/attack_self(var/mob/user)
adjustmask(user)
+/obj/item/clothing/mask/breath/AltClick(var/mob/user)
+ adjustmask(user)
+
+/obj/item/clothing/mask/breath/examine(mob/user)
+ ..()
+ user << "Alt-click [src] to adjust it."
+
/obj/item/clothing/mask/breath/medical
desc = "A close-fitting sterile mask that can be connected to an air supply."
name = "medical mask"
icon_state = "medical"
item_state = "m_mask"
permeability_coefficient = 0.01
- put_on_delay = 10
\ No newline at end of file
+ put_on_delay = 10
diff --git a/html/changelogs/Xhuis-LockerAltClick.yml b/html/changelogs/Xhuis-LockerAltClick.yml
new file mode 100644
index 00000000000..e54cd4ba7b7
--- /dev/null
+++ b/html/changelogs/Xhuis-LockerAltClick.yml
@@ -0,0 +1,5 @@
+author: Xhuis
+delete-after: true
+
+changes:
+ - rscadd: "Allows alt-clicking to adjust breath masks, flip caps, and unlock/lock closets."