From 7efe0beb940703ea76fd6523b4242795147e0bcd Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Mon, 23 May 2016 18:58:50 -0400 Subject: [PATCH] Fixes a few runtimes --- code/game/machinery/rechargestation.dm | 2 +- code/game/turfs/simulated/walls.dm | 10 +++++----- code/game/verbs/suicide.dm | 4 ++-- code/modules/assembly/timer.dm | 3 ++- code/modules/mob/living/silicon/pai/death.dm | 9 +++++---- code/modules/mob/living/simple_animal/hostile/bees.dm | 6 ++++-- code/modules/mob/say.dm | 2 +- code/modules/surgery/organs_internal.dm | 8 ++++---- interface/interface.dm | 5 ++++- 9 files changed, 28 insertions(+), 21 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 5b5a532efdb..55bfd7f2900 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -210,7 +210,7 @@ /obj/machinery/recharge_station/verb/move_inside(var/mob/user = usr) set category = "Object" set src in oview(1) - if(!user) + if(!user || !usr) return if (usr.stat != CONSCIOUS) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 8f1dded0a6e..7f4ac1704d9 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -66,8 +66,9 @@ smooth_icon(src) if(!damage) - overlays -= damage_overlays[damage_overlay] - damage_overlay = 0 + if(damage_overlay) + overlays -= damage_overlays[damage_overlay] + damage_overlay = 0 return var/overlay = round(damage / damage_cap * damage_overlays.len) + 1 @@ -76,12 +77,11 @@ if(damage_overlay && overlay == damage_overlay) //No need to update. return - overlays -= damage_overlays[damage_overlay] + if(damage_overlay) + overlays -= damage_overlays[damage_overlay] overlays += damage_overlays[overlay] damage_overlay = overlay - return - /turf/simulated/wall/proc/generate_overlays() var/alpha_inc = 256 / damage_overlays.len diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 5d91c835ea0..857fcadb48a 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -3,7 +3,7 @@ /mob/living/carbon/human/proc/do_suicide(damagetype, byitem) var/threshold = (config.health_threshold_crit + config.health_threshold_dead) / 2 var/dmgamt = maxHealth - threshold - + var/damage_mod = 1 switch(damagetype) //Sorry about the magic numbers. //brute = 1, burn = 2, tox = 4, oxy = 8 @@ -163,7 +163,7 @@ var/turf/T = get_turf_or_move(card.loc) for (var/mob/M in viewers(T)) M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2) - death(0) + death(0, 1) else to_chat(src, "Aborting suicide attempt.") diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 844e66cd68c..6797ba8f340 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -43,7 +43,8 @@ timer_end() if((!secured)||(cooldown > 0)) return 0 pulse(0) - loc.visible_message("\icon[src] *beep* *beep*", "*beep* *beep*") + if(loc) + loc.visible_message("\icon[src] *beep* *beep*", "*beep* *beep*") cooldown = 2 spawn(10) process_cooldown() diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index 6ad793fff88..0f938ab31b0 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -1,12 +1,13 @@ -/mob/living/silicon/pai/death(gibbed) +/mob/living/silicon/pai/death(gibbed, cleanWipe) if(stat == DEAD) return - force_fold_out() + if(!cleanWipe) + force_fold_out() var/turf/T = get_turf_or_move(loc) for (var/mob/M in viewers(T)) - M.show_message("\red [src] emits a dull beep before it loses power and collapses.", 3, "\red You hear a dull beep followed by the sound of glass crunching.", 2) + M.show_message("[src] emits a dull beep before it loses power and collapses.", 3, "You hear a dull beep followed by the sound of glass crunching.", 2) name = "pAI debris" desc = "The unfortunate remains of some poor personal AI device." icon_state = "[chassis]_dead" @@ -24,5 +25,5 @@ if(mind) qdel(mind) living_mob_list -= src ghostize() - if(icon_state != "[chassis]_dead") + if(icon_state != "[chassis]_dead" || cleanWipe) qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 54b0d10608a..5ba9e62fa9c 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -140,13 +140,15 @@ /mob/living/simple_animal/hostile/poison/bees/worker/Destroy() if(beehome) - beehome.bees.Remove(src) + if(beehome.bees) + beehome.bees.Remove(src) beehome = null ..() /mob/living/simple_animal/hostile/poison/bees/worker/death(gibbed) if(beehome) - beehome.bees.Remove(src) + if(beehome.bees) + beehome.bees.Remove(src) beehome = null ..() diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index e5b12ed022b..e3e8d4620be 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -40,7 +40,7 @@ usr.emote(message) /mob/proc/say_dead(var/message) - if(!src.client.holder) + if(!(client && client.holder)) if(!config.dsay_allowed) to_chat(src, "Deadchat is globally muted.") return diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index e5c6292fa56..8f7ed0e6d67 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -31,7 +31,7 @@ return 0 if(target.get_species() == "Machine")//i know organ robot might be enough but i am not taking chances... return 0 - if(!affected.encased)//no bone, problem. + if(affected && !affected.encased) //no bone, problem. return 0 return 1 @@ -43,9 +43,9 @@ if(affected && (affected.status & ORGAN_ROBOT)) return 0//no operating on robotic limbs in an organic surgery - if(!affected.encased)//no bones no problem. - return 1 - return 0 + if(affected && affected.encased) //no bones no problem. + return 0 + return 1 /datum/surgery/organ_manipulation/alien/can_start(mob/user, mob/living/carbon/target) if(istype(target,/mob/living/carbon/alien/humanoid)) diff --git a/interface/interface.dm b/interface/interface.dm index 44f74a20e59..8dfb29a5f43 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -221,7 +221,10 @@ Any-Mode: (hotkey doesn't need to be on) set name = "Set Hotkey Mode" set category = "Preferences" - hotkeytype = input("Choose hotkey mode", "Hotkey mode") as null|anything in hotkeylist//ask the user for the hotkey type + var/hkt = input("Choose hotkey mode", "Hotkey mode") as null|anything in hotkeylist//ask the user for the hotkey type + if(!hkt) + return + hotkeytype = hkt var/hotkeys = hotkeylist[hotkeytype]//get the list containing the hotkey names var/hotkeyname = hotkeys[hotkeyon ? "on" : "off"]//get the name of the hotkey, to not clutter winset() to much