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)