diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index c0e195c669c..48b7229318a 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -284,6 +284,8 @@ Class Procs: //set_machine must be 0 if clicking the machinery doesn't bring up a dialog /obj/machinery/attack_hand(mob/user, check_power = 1, set_machine = 1) + if(..())// unbuckling etc + return 1 if(user.lying || user.stat) return 1 if(!user.IsAdvancedToolUser()) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 13ad48e75aa..df95b3e5e93 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -11,12 +11,14 @@ /atom/movable/attack_hand(mob/living/user) . = ..() if(can_buckle && buckled_mob) - user_unbuckle_mob(user) + if(user_unbuckle_mob(user)) + return 1 /atom/movable/MouseDrop_T(mob/living/M, mob/living/user) . = ..() if(can_buckle && istype(M)) - user_buckle_mob(M, user) + if(user_buckle_mob(M, user)) + return 1 //Cleanup @@ -73,7 +75,7 @@ //Wrapper procs that handle sanity and user feedback /atom/movable/proc/user_buckle_mob(mob/living/M, mob/user) if(!in_range(user, src) || user.stat || user.restrained()) - return + return 0 add_fingerprint(user) @@ -88,6 +90,8 @@ "[user] buckles [M] to [src]!",\ "[user] buckles you to [src]!",\ "You hear metal clanking.") + return 1 + /atom/movable/proc/user_unbuckle_mob(mob/user) var/mob/living/M = unbuckle_mob() diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 3ac8658347c..cffd468dc83 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -217,13 +217,13 @@ overlays += "cart_buffer" /obj/structure/stool/bed/chair/janicart/attack_hand(mob/user) - if(mybag) + if(..()) + return 1 + else if(mybag) mybag.loc = get_turf(user) user.put_in_hands(mybag) mybag = null update_icon() - else - ..() /obj/structure/stool/bed/chair/janicart/relaymove(mob/user, direction) @@ -256,7 +256,7 @@ if(buckled_mob) buckled_mob.pixel_x = 0 buckled_mob.pixel_y = 0 - ..() + . = ..() /obj/structure/stool/bed/chair/janicart/handle_rotation() if((dir == SOUTH) || (dir == WEST) || (dir == EAST)) @@ -271,6 +271,10 @@ update_mob() +/obj/structure/stool/bed/chair/janicart/Bump(atom/movable/M) + . = ..() + if(istype(M, /obj/machinery/door) && buckled_mob) + M.Bumped(buckled_mob) /obj/structure/stool/bed/chair/janicart/proc/update_mob() if(buckled_mob) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 4d8959849c6..0319e9cdf9c 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -13,6 +13,8 @@ var/max_grown = 200 var/time_of_birth + rotate_on_lying = 0 + //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/larva/New() regenerate_icons() diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 89af6c2f4ca..35f2619cfcf 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -27,3 +27,5 @@ var/remote_view = 0 var/list/obj/effect/proc_holder/alien/abilities = list() var/gib_type = /obj/effect/decal/cleanable/blood/gibs + + var/rotate_on_lying = 1 diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 59d26cb7135..b0563bb2d38 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -4,7 +4,7 @@ var/final_pixel_y = pixel_y var/final_dir = dir var/changed = 0 - if(lying != lying_prev) + if(lying != lying_prev && rotate_on_lying) changed++ ntransform.TurnTo(lying_prev,lying) if(lying == 0) //Lying to standing