diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index 71b607be18..61525cbb51 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -313,7 +313,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else if(href_list["skin_tone"])
if(!has_flag(mob_species, HAS_SKIN_TONE))
return TOPIC_NOACTION
- var/new_s_tone = input(user, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Character Preference", pref.s_tone) as num|null
+ var/new_s_tone = input(user, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Character Preference", (-pref.s_tone) + 35) as num|null
if(new_s_tone && has_flag(mob_species, HAS_SKIN_TONE) && CanUseTopic(user))
pref.s_tone = 35 - max(min( round(new_s_tone), 220),1)
return TOPIC_REFRESH
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 971d73ed6d..ab3778b828 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -189,9 +189,9 @@ datum/preferences
if(path)
dat += "Slot - "
- dat += "Load slot - "
- dat += "Save slot - "
- dat += "Reload slot"
+ dat += "Load slot - "
+ dat += "Save slot - "
+ dat += "Reload slot"
else
dat += "Please create an account to save your preferences."
@@ -215,26 +215,30 @@ datum/preferences
else
user << "The forum URL is not set in the server configuration."
return
+ ShowChoices(usr)
+ return 1
+
+/datum/preferences/Topic(href, list/href_list)
+ if(..())
+ return 1
+
+ if(href_list["save"])
+ save_preferences()
+ save_character()
+ else if(href_list["reload"])
+ load_preferences()
+ load_character()
+ else if(href_list["load"])
+ if(!IsGuestKey(usr.key))
+ open_load_dialog(usr)
+ return 1
+ else if(href_list["changeslot"])
+ load_character(text2num(href_list["changeslot"]))
+ close_load_dialog(usr)
else
- switch(href_list["preference"])
- if("save")
- save_preferences()
- save_character()
+ return 0
- if("reload")
- load_preferences()
- load_character()
-
- if("open_load_dialog")
- if(!IsGuestKey(user.key))
- open_load_dialog(user)
- return 1
-
- if("changeslot")
- load_character(text2num(href_list["num"]))
- close_load_dialog(user)
-
- ShowChoices(user)
+ ShowChoices(usr)
return 1
/datum/preferences/proc/copy_to(mob/living/carbon/human/character, safety = 0)
@@ -352,10 +356,9 @@ datum/preferences
if(!name) name = "Character[i]"
if(i==default_slot)
name = "[name]"
- dat += "[name]
"
+ dat += "[name]
"
dat += "