From a29bbc28c04b5c035997a7e83f96c7ba4716eca0 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 11 Dec 2015 13:47:13 +0100 Subject: [PATCH] Cargo tugs now uses a more finally grained incapacitation check. --- code/__defines/mobs.dm | 5 +++-- code/modules/mob/mob.dm | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 2a3c845bb71..a0a4a5b7e88 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -135,9 +135,10 @@ #define INCAPACITATION_RESTRAINED 1 #define INCAPACITATION_BUCKLED_PARTIALLY 2 #define INCAPACITATION_BUCKLED_FULLY 4 +#define INCAPACITATION_DISABLED 8 -#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY) -#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY) +#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY|INCAPACITATION_DISABLED) +#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY|INCAPACITATION_DISABLED) #define MOB_PULL_NONE 0 #define MOB_PULL_SMALLER 1 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index bec583cf2ad..737fdca1787 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -160,7 +160,7 @@ return buckled ? FULLY_BUCKLED : UNBUCKLED /mob/proc/incapacitated(var/incapacitation_flags = INCAPACITATION_DEFAULT) - if (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH)) + if ((incapacitation_flags & INCAPACITATION_DISABLED) && (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH))) return 1 if((incapacitation_flags & INCAPACITATION_RESTRAINED) && restrained()) @@ -734,9 +734,9 @@ else if(istype(buckled, /obj/vehicle)) var/obj/vehicle/V = buckled - if(cannot_stand()) - lying = 0 - canmove = 1 + if(incapacitated(INCAPACITATION_DISABLED)) + lying = 1 + canmove = 0 pixel_y = V.mob_offset_y - 5 else if(buckled.buckle_lying != -1) lying = buckled.buckle_lying