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()