diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index bb6107e664f..0788a8c2c27 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -79,11 +79,12 @@
if(ckey)
M.ckey = ckey
M << "[flavour_text]"
+ var/datum/mind/MM = M.mind
if(objectives)
- var/datum/mind/MM = M.mind
for(var/objective in objectives)
MM.objectives += new/datum/objective(objective)
special(M)
+ MM.name = M.real_name
if(uses > 0)
uses--
if(!permanent && !uses)
@@ -530,4 +531,4 @@
if(despawn == "No" || !loc || !Adjacent(user))
return
user.visible_message("[user.name] climbs back into cryosleep...")
- qdel(user)
\ No newline at end of file
+ qdel(user)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 2b37d2476b4..42571768867 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -590,6 +590,38 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "Data HUDs enabled."
data_huds_on = 1
+/mob/dead/observer/verb/restore_ghost_apperance()
+ set name = "Restore Ghost Character"
+ set desc = "Sets your ghost name and apperance to the name of your \
+ roundstart character."
+ set category = "Ghost"
+
+ set_ghost_appearance()
+
+/mob/dead/observer/proc/set_ghost_appearance()
+ if((!client) || (!client.prefs))
+ return
+
+ if(client.prefs.be_random_name)
+ client.prefs.real_name = random_unique_name(gender)
+ if(client.prefs.be_random_body)
+ client.prefs.random_character(gender)
+
+ if(HAIR in client.prefs.pref_species.specflags)
+ hair_style = client.prefs.hair_style
+ hair_color = brighten_color(client.prefs.hair_color)
+ if(FACEHAIR in client.prefs.pref_species.specflags)
+ facial_hair_style = client.prefs.facial_hair_style
+ facial_hair_color = brighten_color(client.prefs.facial_hair_color)
+
+ real_name = client.prefs.real_name
+ name = real_name
+
+ if(mind)
+ mind.name = name
+
+ update_icon()
+
/mob/dead/observer/canUseTopic()
if(check_rights(R_ADMIN, 0))
return 1
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 2861e2e41aa..b40626de3f1 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -127,19 +127,9 @@
observer.loc = O.loc
else
src << "Teleporting failed. You should be able to use ghost verbs to teleport somewhere useful"
- if(client.prefs.be_random_name)
- client.prefs.real_name = random_unique_name(gender)
- if(client.prefs.be_random_body)
- client.prefs.random_character(gender)
- if(HAIR in client.prefs.pref_species.specflags)
- observer.hair_style = client.prefs.hair_style
- observer.hair_color = observer.brighten_color(client.prefs.hair_color)
- if(FACEHAIR in client.prefs.pref_species.specflags)
- observer.facial_hair_style = client.prefs.facial_hair_style
- observer.facial_hair_color = observer.brighten_color(client.prefs.facial_hair_color)
- observer.real_name = client.prefs.real_name
- observer.name = observer.real_name
observer.key = key
+ observer.client = client
+ observer.set_ghost_appearance()
observer.update_icon()
observer.stopLobbySound()
qdel(mind)