From f641f1f6efeb0f155610d14ff8998e5f95970c6a Mon Sep 17 00:00:00 2001 From: S34N <12197162+S34NW@users.noreply.github.com> Date: Mon, 4 Oct 2021 20:14:16 +0100 Subject: [PATCH] Fixes ghost teleport menu (#16858) * fixes ghost jumping * use SSmapping.ghostteleportlocs --- code/modules/mob/dead/observer/observer.dm | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index e86857ef91e..87192a4c0d0 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -389,23 +389,22 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!isobserver(usr)) to_chat(usr, "Not when you're not dead!") return + var/target = input("Area to teleport to", "Teleport to a location") as null|anything in SSmapping.ghostteleportlocs + var/area/A = SSmapping.teleportlocs[target] + teleport(A) - var/datum/async_input/A = input_autocomplete_async(usr, "Area to jump to: ", SSmapping.ghostteleportlocs) - A.on_close(CALLBACK(src, .proc/teleport)) - -/mob/dead/observer/proc/teleport(area/thearea) - if(!thearea || !isobserver(usr)) +/mob/dead/observer/proc/teleport(area/A) + if(!A || !isobserver(usr)) return - var/list/L = list() - for(var/turf/T in get_area_turfs(thearea.type)) - L += T + var/list/turfs = list() + for(var/turf/T in get_area_turfs(A.type)) + turfs += T - if(!L || !L.len) - to_chat(usr, "No area available.") + if(!length(turfs)) + to_chat(src, "Nowhere to jump to!") return - - forceMove(pick(L)) + forceMove(pick(turfs)) update_parallax_contents() /mob/dead/observer/verb/follow()