From 449c8c8d8f96accce324e074a539fe646dc8b19d Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 10 Jun 2015 10:08:17 +0200 Subject: [PATCH] Refactors the ghost_follow_link proc to not use istype checks. --- code/modules/mob/dead/observer/observer.dm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 9f023b0469..37aecab043 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -682,15 +682,18 @@ mob/dead/observer/MayRespawn(var/feedback = 0) return 0 return 1 +/atom/proc/extra_ghost_link() + return + +/mob/extra_ghost_link(var/atom/ghost) + if(mind && eyeobj) + return "|eye" + +/mob/dead/observer/extra_ghost_link(var/atom/ghost) + if(mind && mind.current) + return "|body" + /proc/ghost_follow_link(var/atom/target, var/atom/ghost) if((!target) || (!ghost)) return . = "follow" - - if(istype(target, /mob/dead/observer)) - var/mob/dead/observer/O = target - if(O.mind && O.mind.current) - . += "|body" - else if(istype(target, /mob)) // Eye follow links - var/mob/M = target - if(M.client && M.eyeobj) // No point following clientless eyes - . += "|eye" + . += target.extra_ghost_link(ghost)