diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index bcfed9aa069..061b5a3b990 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -160,6 +160,7 @@ /// Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it /atom/proc/IsObscured() + SHOULD_BE_PURE(TRUE) if(!isturf(loc)) //This only makes sense for things directly on turfs for now return FALSE var/turf/T = get_turf_pixel(src) diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index a2425456f76..0ac5b4e35e8 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -146,7 +146,7 @@ var/mob/living/carbon/human/victim = parent var/chance = jostle_chance - if(victim.m_intent == MOVE_INTENT_WALK || victim.lying) + if(victim.m_intent == MOVE_INTENT_WALK || !(victim.mobility_flags & MOBILITY_STAND)) chance *= 0.5 if(harmful && prob(chance)) diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index 442236ae9ff..75720c89771 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -42,8 +42,8 @@ return var/mob/living/LM = parent - if(!T.footstep || LM.buckled || LM.lying || !((LM.mobility_flags & (MOBILITY_STAND | MOBILITY_MOVE)) == (MOBILITY_STAND | MOBILITY_MOVE)) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) - if (LM.lying && !LM.buckled && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying + if(!T.footstep || LM.buckled || !((LM.mobility_flags & (MOBILITY_STAND | MOBILITY_MOVE)) == (MOBILITY_STAND | MOBILITY_MOVE)) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) + if (!(LM.mobility_flags & MOBILITY_STAND) && !LM.buckled && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * volume) return diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 245b7556e0d..ace6116b484 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -21,5 +21,5 @@ /datum/component/slippery/proc/Slip_on_wearer(datum/source, atom/movable/AM, mob/living/crossed) - if(crossed.lying && !crossed.buckle_lying) + if(!(crossed.mobility_flags & MOBILITY_STAND) && !crossed.buckle_lying) Slip(source, AM) diff --git a/code/datums/elements/squish.dm b/code/datums/elements/squish.dm index c41afef681d..ee2c38f3315 100644 --- a/code/datums/elements/squish.dm +++ b/code/datums/elements/squish.dm @@ -17,7 +17,7 @@ return ELEMENT_INCOMPATIBLE var/mob/living/carbon/C = target - var/was_lying = (C.lying != 0) // is our spessmen sideways? the eternal question.. + var/was_lying = !(C.mobility_flags & MOBILITY_STAND) addtimer(CALLBACK(src, .proc/Detach, C, was_lying, reverse), duration) if(reverse) @@ -28,7 +28,7 @@ /datum/element/squish/Detach(mob/living/carbon/C, was_lying, reverse) . = ..() if(istype(C)) - var/is_lying = (C.lying != 0) + var/is_lying = !(C.mobility_flags & MOBILITY_STAND) if(reverse) is_lying = !is_lying diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index a38bb2c6432..69ff88eb976 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -394,7 +394,7 @@ /datum/mutation/human/extrastun/proc/on_move() if(prob(99.5)) //The brawl mutation return - if(owner.buckled || owner.lying || !((owner.mobility_flags & (MOBILITY_STAND | MOBILITY_MOVE)) == (MOBILITY_STAND | MOBILITY_MOVE)) || owner.throwing || owner.movement_type & (VENTCRAWLING | FLYING | FLOATING)) + if(owner.buckled || !(owner.mobility_flags & MOBILITY_STAND) || !((owner.mobility_flags & (MOBILITY_STAND | MOBILITY_MOVE)) == (MOBILITY_STAND | MOBILITY_MOVE)) || owner.throwing || owner.movement_type & (VENTCRAWLING | FLYING | FLOATING)) return //remove the 'edge' cases to_chat(owner, "You trip over your own feet.") owner.Knockdown(30) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 24d79d64d87..4370ccdd4a5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -881,6 +881,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return /obj/item/proc/canStrip(mob/stripper, mob/owner) + SHOULD_BE_PURE(TRUE) return !HAS_TRAIT(src, TRAIT_NODROP) /obj/item/proc/doStrip(mob/stripper, mob/owner) diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 87cac2cafd7..9befac9047c 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -69,8 +69,8 @@ add_overlay(nest_overlay) /obj/structure/bed/nest/post_unbuckle_mob(mob/living/M) - M.pixel_x = M.get_standard_pixel_x_offset(M.lying) - M.pixel_y = M.get_standard_pixel_y_offset(M.lying) + M.pixel_x = M.get_standard_pixel_x_offset(!(M.mobility_flags & MOBILITY_STAND)) + M.pixel_y = M.get_standard_pixel_y_offset(!(M.mobility_flags & MOBILITY_STAND)) M.layer = initial(M.layer) cut_overlay(nest_overlay) diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index c0a6c8f8244..daf5db0f2bc 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -100,8 +100,8 @@ /obj/structure/bed/roller/post_unbuckle_mob(mob/living/M) density = FALSE icon_state = "down" - M.pixel_x = M.get_standard_pixel_x_offset(M.lying) - M.pixel_y = M.get_standard_pixel_y_offset(M.lying) + M.pixel_x = M.get_standard_pixel_x_offset(!(M.mobility_flags & MOBILITY_STAND)) + M.pixel_y = M.get_standard_pixel_y_offset(!(M.mobility_flags & MOBILITY_STAND)) /obj/item/roller name = "roller bed" diff --git a/code/game/say.dm b/code/game/say.dm index 81d33a03596..3fe406603cc 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(freqtospan, list( SEND_SIGNAL(src, COMSIG_MOVABLE_HEAR, args) /atom/movable/proc/can_speak() + SHOULD_BE_PURE(TRUE) return 1 /atom/movable/proc/send_speech(message, range = 7, obj/source = src, bubble_type, list/spans, datum/language/message_language = null, message_mode) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index b391b9dee84..f080198ea04 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -175,6 +175,7 @@ return TRUE /turf/proc/can_zFall(atom/movable/A, levels = 1, turf/target) + SHOULD_BE_PURE(TRUE) return zPassOut(A, DOWN, target) && target.zPassIn(A, DOWN, src) /turf/proc/zFall(atom/movable/A, levels = 1, force = FALSE) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index eeddc54d56f..f6c5305d077 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -899,8 +899,8 @@ var/amplitude = min(4, (jitteriness/100) + 1) var/pixel_x_diff = rand(-amplitude, amplitude) var/pixel_y_diff = rand(-amplitude/3, amplitude/3) - var/final_pixel_x = get_standard_pixel_x_offset(lying) - var/final_pixel_y = get_standard_pixel_y_offset(lying) + var/final_pixel_x = get_standard_pixel_x_offset(!(mobility_flags & MOBILITY_STAND)) + var/final_pixel_y = get_standard_pixel_y_offset(!(mobility_flags & MOBILITY_STAND)) animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6) animate(pixel_x = final_pixel_x , pixel_y = final_pixel_y , time = 2) setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life(). diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 14b4427433d..0e6ee3372d1 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -28,7 +28,7 @@ var/resting = FALSE - var/lying = 0 ///number of degrees. DO NOT USE THIS IN CHECKS. CHECK FOR MOBILITY FLAGS INSTEAD!! + VAR_PROTECTED/lying = 0 ///number of degrees. DO NOT USE THIS IN CHECKS. CHECK FOR MOBILITY FLAGS INSTEAD!! var/lying_prev = 0 ///last value of lying on update_mobility var/confused = 0 ///Makes the mob move in random directions. diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 85a5b6b3807..e9e5365ce06 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -287,6 +287,7 @@ ///Checks if the mob is able to see or not. eye_blind is temporary blindness, the trait is if they're permanently blind. /mob/proc/is_blind() + SHOULD_BE_PURE(TRUE) return eye_blind ? TRUE : HAS_TRAIT(src, TRAIT_BLIND) ///Is the mob hallucinating? diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm index 3b344dacda6..91c9a8fa14c 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm @@ -11,7 +11,6 @@ H.SetParalyzed(0) H.adjustStaminaLoss(-75) H.stuttering = 0 - H.lying = 0 H.update_mobility() H.reagents.add_reagent(/datum/reagent/medicine/stimulants, 5) H.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!"), forced = "ninjaboost") diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm index bec09abb542..f01c51e87ad 100644 --- a/code/modules/photography/camera/camera_image_capturing.dm +++ b/code/modules/photography/camera/camera_image_capturing.dm @@ -11,7 +11,7 @@ step_y = AM.step_y if(iscarbon(A)) var/mob/living/carbon/C = A - turn_angle = C.lying + UNLINT(turn_angle = C.lying) // this is the only place its okay to read lying directly . = ..() /obj/item/camera/proc/camera_get_icon(list/turfs, turf/center, psize_x = 96, psize_y = 96, datum/turf_reservation/clone_area, size_x, size_y, total_x, total_y)