diff --git a/code/modules/client/preference_setup/global/02_settings.dm b/code/modules/client/preference_setup/global/02_settings.dm index c44f9c4e44..2e1c058138 100644 --- a/code/modules/client/preference_setup/global/02_settings.dm +++ b/code/modules/client/preference_setup/global/02_settings.dm @@ -25,10 +25,13 @@ continue pref.preferences += client_pref.key +<<<<<<< HEAD for(var/preference in pref.preferences) if(!get_client_preference_by_key(preference)) pref.preferences -= preference +======= +>>>>>>> 19b7ebf... Preferences now store client key instead of the client itself. pref.lastchangelog = sanitize_text(pref.lastchangelog, initial(pref.lastchangelog)) pref.default_slot = sanitize_integer(pref.default_slot, 1, config.character_slots, initial(pref.default_slot)) @@ -50,7 +53,11 @@ . += "" . += "" +<<<<<<< HEAD return jointext(.) +======= + return jointext(., "") +>>>>>>> 19b7ebf... Preferences now store client key instead of the client itself. /datum/category_item/player_setup_item/player_global/settings/OnTopic(var/href,var/list/href_list, var/mob/user) var/mob/pref_mob = preference_mob() diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index 81c1f4c463..f02ecddc7b 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -212,13 +212,13 @@ /datum/category_item/player_setup_item/Topic(var/href,var/list/href_list) if(..()) return 1 - var/mob/user = usr - if(!user.client) + var/mob/pref_mob = preference_mob() + if(!pref_mob || !pref_mob.client) return 1 - . = OnTopic(href, href_list, user) + . = OnTopic(href, href_list, usr) if(. == TOPIC_REFRESH) - user.client.prefs.ShowChoices(user) + pref_mob.client.prefs.ShowChoices(usr) /datum/category_item/player_setup_item/CanUseTopic(var/mob/user) return 1 @@ -227,5 +227,4 @@ return TOPIC_NOACTION /datum/category_item/player_setup_item/proc/preference_mob() - if(pref && pref.client && pref.client.mob) - return pref.client.mob + return get_mob_by_key(pref.client_ckey) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f000ccfe7d..288e7bffcb 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -109,10 +109,14 @@ datum/preferences // OOC Metadata: var/metadata = "" +<<<<<<< HEAD // Communicator identity data var/communicator_visibility = 0 var/client/client = null +======= + var/client_ckey = null +>>>>>>> 19b7ebf... Preferences now store client key instead of the client itself. var/datum/category_collection/player_setup_collection/player_setup @@ -125,7 +129,7 @@ datum/preferences gear = list() if(istype(C)) - client = C + client_ckey = C.ckey if(!IsGuestKey(C.key)) load_path(C.ckey) if(load_preferences()) @@ -186,6 +190,12 @@ datum/preferences /datum/preferences/proc/ShowChoices(mob/user) if(!user || !user.client) return + + if(!get_mob_by_key(client_ckey)) + user << "No mob exists for the given client!" + close_load_dialog(user) + return + var/dat = "