diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index fe68af16cec..0fc30d2a9f5 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -236,11 +236,11 @@ /* Middle click - Only used for swapping hands */ /mob/proc/MiddleClickOn(var/atom/A) + if(A.handle_middle_mouse_click(src)) + return swap_hand() - return // In case of use break glass /* @@ -411,4 +411,4 @@ var/global/list/click_catchers /mob/verb/MouseSubstitute(params as command_text) set hidden = 1 set name = ".mouse" - LogMouseMacro(".mouse", params) \ No newline at end of file + LogMouseMacro(".mouse", params) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 4c0c1addeaf..1a2787cff7f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -595,7 +595,7 @@ if(!(H in mobs)) if(src.z == H.z && get_dist(src, H) <= range) H.intent_listen(src, message) - + /atom/proc/change_area(var/area/oldarea, var/area/newarea) change_area_name(oldarea.name, newarea.name) @@ -650,3 +650,6 @@ if(degrees) appearance_flags |= PIXEL_SCALE transform = M + +/atom/proc/handle_middle_mouse_click(var/mob/user) + return FALSE diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 4c60bf196e6..d2f232388a2 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -566,6 +566,12 @@ src.add_fingerprint(user) return +/obj/item/storage/handle_middle_mouse_click(var/mob/user) + if(Adjacent(user)) + open(user) + return TRUE + return FALSE + /obj/item/storage/verb/toggle_gathering_mode() set name = "Switch Gathering Method" set category = "Object" @@ -773,4 +779,4 @@ //return 2**(w_class-1) //1,2,4,8,16,... -#undef STORAGE_SPACE_CAP \ No newline at end of file +#undef STORAGE_SPACE_CAP diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6a5faf0e252..a2a544ffa5a 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -102,6 +102,14 @@ if(tint) user.handle_vision() +/obj/item/clothing/handle_middle_mouse_click(mob/user) + if(Adjacent(user)) + var/obj/item/clothing/accessory/storage/S = locate() in accessories + if(S?.hold) + S.hold.open(user) + return TRUE + return FALSE + /obj/item/clothing/proc/return_own_image() var/image/our_image if(icon_override) diff --git a/html/changelogs/geeves-storage_opening.yml b/html/changelogs/geeves-storage_opening.yml new file mode 100644 index 00000000000..e4f53ac3849 --- /dev/null +++ b/html/changelogs/geeves-storage_opening.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Middle Mouse Clicking a storage item on your person or adjacent to you will now open it." \ No newline at end of file