diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
index ffa143a9f5c..2bcbf8aa878 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
@@ -15,7 +15,7 @@
/obj/structure/bed/chair/wheelchair/set_dir()
..()
overlays = null
- var/image/O = image(icon = 'icons/obj/objects.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir)
+ var/image/O = image(icon = 'icons/obj/furniture.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir)
overlays += O
if(buckled_mob)
buckled_mob.set_dir(dir)
@@ -116,26 +116,21 @@
user_unbuckle_mob(user)
return
-/obj/structure/bed/chair/wheelchair/MouseDrop(over_object, src_location, over_location)
- ..()
- if(over_object == usr && in_range(src, usr))
- if(!ishuman(usr)) return
- if(usr == buckled_mob)
- usr << "You realize you are unable to push the wheelchair you sit in."
+/obj/structure/bed/chair/wheelchair/CtrlClick(var/mob/user)
+ if(in_range(src, user))
+ if(!ishuman(user)) return
+ if(user == buckled_mob)
+ user << "You realize you are unable to push the wheelchair you sit in."
return
if(!pulling)
- pulling = usr
- usr.pulledby = src
- if(usr.pulling)
- usr.stop_pulling()
- usr.set_dir(get_dir(usr, src))
- usr << "You grip \the [name]'s handles."
+ pulling = user
+ user.pulledby = src
+ if(user.pulling)
+ user.stop_pulling()
+ user.set_dir(get_dir(user, src))
+ user << "You grip \the [name]'s handles."
else
- if(usr != pulling)
- for(var/mob/O in viewers(pulling, null))
- O.show_message("[usr] breaks [pulling]'s grip on the wheelchair.", 1)
- else
- usr << "You let go of \the [name]'s handles."
+ usr << "You let go of \the [name]'s handles."
pulling.pulledby = null
pulling = null
return
diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm
index 0259a3ef4bb..051749edde4 100644
--- a/code/modules/mob/living/carbon/human/human_organs.dm
+++ b/code/modules/mob/living/carbon/human/human_organs.dm
@@ -43,7 +43,7 @@
E.process()
number_wounds += E.number_wounds
- if (!lying && world.time - l_move_time < 15)
+ if (!lying && !buckled && world.time - l_move_time < 15)
//Moving around with fractured ribs won't do you any good
if (E.is_broken() && E.internal_organs && E.internal_organs.len && prob(15))
var/obj/item/organ/I = pick(E.internal_organs)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index eb1b7a74bc3..3d5f9091c51 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -85,7 +85,7 @@ default behaviour is:
now_pushing = 0
return
- if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !dense && can_move_mob(tmob, 1, 0)) // mutual brohugs all around!
+ if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !tmob.buckled && !buckled && !dense && can_move_mob(tmob, 1, 0)) // mutual brohugs all around!
var/turf/oldloc = loc
forceMove(tmob.loc)
tmob.forceMove(oldloc)
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 5cbf694a8e7..ef79b7064bf 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -300,8 +300,8 @@
if(istype(mob.pulledby, /obj/structure/bed/chair/wheelchair))
return mob.pulledby.relaymove(mob, direct)
else if(istype(mob.buckled, /obj/structure/bed/chair/wheelchair))
- if(ishuman(mob.buckled))
- var/mob/living/carbon/human/driver = mob.buckled
+ if(ishuman(mob))
+ var/mob/living/carbon/human/driver = mob
var/obj/item/organ/external/l_hand = driver.get_organ("l_hand")
var/obj/item/organ/external/r_hand = driver.get_organ("r_hand")
if((!l_hand || l_hand.is_stump()) && (!r_hand || r_hand.is_stump()))
diff --git a/icons/obj/furniture.dmi b/icons/obj/furniture.dmi
index 0feff28dc6c..852c69bc3aa 100644
Binary files a/icons/obj/furniture.dmi and b/icons/obj/furniture.dmi differ
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index a43538e92bb..c56498f2f33 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/icons/obj/rollerbed.dmi b/icons/obj/rollerbed.dmi
index 4646201b0c1..96cef3b01fa 100644
Binary files a/icons/obj/rollerbed.dmi and b/icons/obj/rollerbed.dmi differ