diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index fa09155b63..1d49c1aacb 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -115,7 +115,13 @@ if(alert(src,"Are you sure you wish to observe? You will have to wait 5 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes") if(!client) return 1 - var/mob/observer/dead/observer = new() + + //Make a new mannequin quickly, and allow the observer to take the appearance + var/mob/living/carbon/human/dummy/mannequin = new() + client.prefs.dress_preview_mob(mannequin) + var/mob/observer/dead/observer = new(mannequin) + observer.forceMove(null) //Let's not stay in our doomed mannequin + qdel(mannequin) spawning = 1 src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo @@ -125,20 +131,13 @@ close_spawn_windows() var/obj/O = locate("landmark*Observer-Start") if(istype(O)) - src << "Now teleporting." - observer.loc = O.loc + to_chat(src,"Now teleporting.") + observer.forceMove(O.loc) else - src << "Could not locate an observer spawn point. Use the Teleport verb to jump to the station map." + to_chat(src,"Could not locate an observer spawn point. Use the Teleport verb to jump to the station map.") observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly. announce_ghost_joinleave(src) - var/mob/living/carbon/human/dummy/mannequin = new() - client.prefs.dress_preview_mob(mannequin) - observer.appearance = mannequin - observer.alpha = 127 - observer.layer = initial(observer.layer) - observer.invisibility = initial(observer.invisibility) - qdel(mannequin) if(client.prefs.be_random_name) client.prefs.real_name = random_name(client.prefs.identifying_gender)