From 721fd108f914a4f67c21830fb436598847b6ea22 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 24 Jan 2020 03:02:07 +0100 Subject: [PATCH] A few more, ported, runtime fixes. --- code/_onclick/hud/parallax.dm | 4 +++- code/game/objects/effects/effect_system/effect_system.dm | 5 ++++- code/game/objects/structures/guillotine.dm | 2 +- .../atmospherics/machinery/components/components_base.dm | 2 +- code/modules/mob/living/carbon/human/human_defense.dm | 3 ++- code/modules/mob/living/simple_animal/friendly/dog.dm | 6 +++++- .../modular_computers/computers/item/computer_damage.dm | 2 ++ code/modules/research/experimentor.dm | 3 ++- 8 files changed, 20 insertions(+), 7 deletions(-) diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 8592383a4f..25a49c8d6b 100755 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -146,6 +146,8 @@ /datum/hud/proc/update_parallax_motionblur(client/C, animatedir, new_parallax_movedir, matrix/newtransform) + if(!C) + return C.parallax_animate_timer = FALSE for(var/thing in C.parallax_layers) var/obj/screen/parallax_layer/L = thing @@ -167,7 +169,7 @@ /datum/hud/proc/update_parallax() var/client/C = mymob.client var/turf/posobj = get_turf(C.eye) - if(!posobj) + if(!posobj) return var/area/areaobj = posobj.loc diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index ddc805f3ff..05077bf898 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -48,6 +48,8 @@ would spawn and follow the beaker, even if it is carried or thrown. holder = atom /datum/effect_system/proc/start() + if(QDELETED(src)) + return for(var/i in 1 to number) if(total_effects > 20) return @@ -69,7 +71,8 @@ would spawn and follow the beaker, even if it is carried or thrown. for(var/j in 1 to steps_amt) sleep(5) step(E,direction) - addtimer(CALLBACK(src, .proc/decrement_total_effect), 20) + if(!QDELETED(src)) + addtimer(CALLBACK(src, .proc/decrement_total_effect), 20) /datum/effect_system/proc/decrement_total_effect() total_effects-- diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 3b4bbea559..611a6d024d 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -97,7 +97,7 @@ icon_state = "guillotine_raised" /obj/structure/guillotine/proc/drop_blade(mob/user) - if (buckled_mobs.len && blade_sharpness) + if (has_buckled_mobs() && blade_sharpness) var/mob/living/carbon/human/H = buckled_mobs[1] if (!H) diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index ff2a655aac..86e8863b2b 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -30,7 +30,7 @@ underlays.Cut() var/turf/T = loc - if(level == 2 || !T.intact) + if(level == 2 || (istype(T) && !T.intact)) showpipe = TRUE plane = GAME_PLANE else diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 934e0f08dc..accaab3ac1 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -336,7 +336,8 @@ if(bomb_armor < EXPLODE_GIB_THRESHOLD) //gibs the mob if their bomb armor is lower than EXPLODE_GIB_THRESHOLD for(var/I in contents) var/atom/A = I - A.ex_act(severity) + if(!QDELETED(A)) + A.ex_act(severity) gib() return else diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 2371cfd7f1..554d03991a 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -207,7 +207,11 @@ switch(add_to) if("collar") - add_collar(usr.get_active_held_item(), usr) + var/obj/item/clothing/neck/petcollar/P = usr.get_active_held_item() + if(!istype(P)) + to_chat(usr,"That's not a collar.") + return + add_collar(P, usr) update_corgi_fluff() if(BODY_ZONE_HEAD) diff --git a/code/modules/modular_computers/computers/item/computer_damage.dm b/code/modules/modular_computers/computers/item/computer_damage.dm index 001cf3aa65..6664b449bd 100644 --- a/code/modules/modular_computers/computers/item/computer_damage.dm +++ b/code/modules/modular_computers/computers/item/computer_damage.dm @@ -23,6 +23,8 @@ new /obj/item/stack/sheet/metal(newloc, round(steel_sheet_cost/2)) for(var/C in all_components) var/obj/item/computer_hardware/H = all_components[C] + if(QDELETED(H)) + return uninstall_component(H) H.forceMove(newloc) if(prob(25)) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 681195bcc3..fd68a393f9 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -573,7 +573,8 @@ else if(loc == user) cooldown = TRUE call(src,realProc)(user) - addtimer(CALLBACK(src, .proc/cd), cooldownMax) + if(!QDELETED(src)) + addtimer(CALLBACK(src, .proc/cd), cooldownMax) else to_chat(user, "You aren't quite sure what to do with this yet.")