diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 82d894dba43..a772d9bffed 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -220,7 +220,7 @@
icon_state = "act_throw_off"
/obj/screen/throw_catch/Click()
- if(iscarbon(usr) && !usr.stat && isturf(usr.loc) && !usr.restrained())
+ if(iscarbon(usr))
var/mob/living/carbon/C = usr
C.toggle_throw_mode()
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index bdf805d2b02..b4f5eb2052c 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -83,6 +83,11 @@
user.s_active = src
+/obj/item/weapon/storage/throw_at(atom/target, range, speed)
+ close_all()
+ return ..()
+
+
/obj/item/weapon/storage/proc/hide_from(mob/user)
if(!user.client)
return
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 6223acc54f8..0f5ec6d846f 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -220,6 +220,8 @@
//Throwing stuff
/mob/living/carbon/proc/toggle_throw_mode()
+ if(stat)
+ return
if(in_throw_mode)
throw_mode_off()
else
@@ -240,9 +242,9 @@
/mob/living/carbon/throw_item(atom/target)
throw_mode_off()
- if(usr.stat || !target)
+ if(!target || !isturf(loc))
return
- if(target.type == /obj/screen) return
+ if(istype(target, /obj/screen)) return
var/atom/movable/item = src.get_active_hand()
@@ -260,7 +262,7 @@
var/start_T_descriptor = "tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]"
var/end_T_descriptor = "tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]"
- add_logs(usr, M, "thrown", admin=0, addition="from [start_T_descriptor] with the target [end_T_descriptor]")
+ add_logs(src, M, "thrown", admin=0, addition="from [start_T_descriptor] with the target [end_T_descriptor]")
if(!item) return //Grab processing has a chance of returning null
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index e0f206cc726..c3822358c05 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -61,16 +61,6 @@
return
-/client/verb/toggle_throw_mode()
- set hidden = 1
- if(!istype(mob, /mob/living/carbon))
- return
- if (!mob.stat && isturf(mob.loc) && !mob.restrained())
- mob:toggle_throw_mode()
- else
- return
-
-
/client/verb/drop_item()
set hidden = 1
if(!isrobot(mob))