From 00e99245828567e8cb84f897d7d55229b4700ddc Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 29 Dec 2019 09:41:58 +0200 Subject: [PATCH] Fixes chairs acting as handcuffs. (#6588) * Fixes chairs/beds/etc acting as handcuffs. It's been at least 7 years without anyone noticing a broken feature with a false comment so the unintentional "balancing" caused by this may have ingrained a standard some folks would rather keep in, but that kind of nerfs have proper ways of implementing at their own appropriate places in the code. Basically this just lets folks use hands when buckled. May also have a side effect of allowing self-surgery if it never had a proper prevention method implemented. Keeps an exception for xeno nests tho. Any other seat has no reason to be handcuffs. * Fixes another thing causing chairs to incapacitate "Are you seated" and "Are you incapacitated" should not be used as the same thing yet here we are. I should probably also do a refactor to remove all the inappropriate use of canmove var. Seriously, even the specifically cartridge exclusive PDA menu buttons are using that for what??? --- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/living.dm | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 1bd873dcec..53a5314f77 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -289,7 +289,7 @@ /mob/living/carbon/can_use_hands() if(handcuffed) return 0 - if(buckled && ! istype(buckled, /obj/structure/bed/chair)) // buckling does not restrict hands + if(buckled && istype(buckled, /obj/structure/bed/nest)) // buckling does not restrict hands return 0 return 1 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index f289ad1cb6..b853b7d7c1 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1066,10 +1066,11 @@ default behaviour is: pixel_y = V.mob_offset_y else if(buckled) anchored = 1 - canmove = 0 + canmove = 1 //The line above already makes the chair not swooce away if the sitter presses a button. No need to incapacitate them as a criminally large amount of mechanics read this var as a type of stun. if(istype(buckled)) if(buckled.buckle_lying != -1) lying = buckled.buckle_lying + canmove = buckled.buckle_movable if(buckled.buckle_movable) anchored = 0 canmove = 1