|
|
|
@@ -166,6 +166,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
)
|
|
|
|
|
var/custom_speech_verb = "default" //if your say_mod is to be something other than your races
|
|
|
|
|
var/custom_tongue = "default" //if your tongue is to be something other than your races
|
|
|
|
|
var/additional_language = "None" //additional language your character has
|
|
|
|
|
var/modified_limbs = list() //prosthetic/amputated limbs
|
|
|
|
|
var/chosen_limb_id //body sprite selected to load for the users limbs, null means default, is sanitized when loaded
|
|
|
|
|
|
|
|
|
@@ -292,10 +293,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=0' [current_tab == 0 ? "class='linkOn'" : ""]>Character Settings</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=2' [current_tab == 2 ? "class='linkOn'" : ""]>Character Appearance</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=3' [current_tab == 3 ? "class='linkOn'" : ""]>Loadout</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=3' [current_tab == 3 ? "class='linkOn'" : ""]>Character Speech</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=4' [current_tab == 4 ? "class='linkOn'" : ""]>Loadout</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=1' [current_tab == 1 ? "class='linkOn'" : ""]>Game Preferences</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=4' [current_tab == 4 ? "class='linkOn'" : ""]>Content Preferences</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=5' [current_tab == 5 ? "class='linkOn'" : ""]>Keybindings</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=5' [current_tab == 5 ? "class='linkOn'" : ""]>Content Preferences</a>"
|
|
|
|
|
dat += "<a href='?_src_=prefs;preference=tab;tab=6' [current_tab == 6 ? "class='linkOn'" : ""]>Keybindings</a>"
|
|
|
|
|
|
|
|
|
|
if(!path)
|
|
|
|
|
dat += "<div class='notice'>Please create an account to save your preferences</div>"
|
|
|
|
@@ -494,13 +496,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
else if(use_skintones || mutant_colors)
|
|
|
|
|
dat += "</td>"
|
|
|
|
|
|
|
|
|
|
dat += APPEARANCE_CATEGORY_COLUMN
|
|
|
|
|
dat += "<h2>Speech preferences</h2>"
|
|
|
|
|
dat += "<b>Custom Speech Verb:</b><BR>"
|
|
|
|
|
dat += "</b><a style='display:block;width:100px' href='?_src_=prefs;preference=speech_verb;task=input'>[custom_speech_verb]</a><BR>"
|
|
|
|
|
dat += "<b>Custom Tongue:</b><BR>"
|
|
|
|
|
dat += "</b><a style='display:block;width:100px' href='?_src_=prefs;preference=tongue;task=input'>[custom_tongue]</a><BR>"
|
|
|
|
|
|
|
|
|
|
if(HAIR in pref_species.species_traits)
|
|
|
|
|
|
|
|
|
|
dat += APPEARANCE_CATEGORY_COLUMN
|
|
|
|
@@ -641,6 +636,36 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
dat += "</td>"
|
|
|
|
|
dat += "</tr></table>"
|
|
|
|
|
|
|
|
|
|
if(3)
|
|
|
|
|
if(path)
|
|
|
|
|
var/savefile/S = new /savefile(path)
|
|
|
|
|
if(S)
|
|
|
|
|
dat += "<center>"
|
|
|
|
|
var/name
|
|
|
|
|
var/unspaced_slots = 0
|
|
|
|
|
for(var/i=1, i<=max_save_slots, i++)
|
|
|
|
|
unspaced_slots++
|
|
|
|
|
if(unspaced_slots > 4)
|
|
|
|
|
dat += "<br>"
|
|
|
|
|
unspaced_slots = 0
|
|
|
|
|
S.cd = "/character[i]"
|
|
|
|
|
S["real_name"] >> name
|
|
|
|
|
if(!name)
|
|
|
|
|
name = "Character[i]"
|
|
|
|
|
dat += "<a style='white-space:nowrap;' href='?_src_=prefs;preference=changeslot;num=[i];' [i == default_slot ? "class='linkOn'" : ""]>[name]</a> "
|
|
|
|
|
dat += "</center>"
|
|
|
|
|
|
|
|
|
|
dat += "<table><tr><td width='340px' height='300px' valign='top'>"
|
|
|
|
|
dat += "<h2>Speech preferences</h2>"
|
|
|
|
|
dat += "<b>Custom Speech Verb:</b><BR>"
|
|
|
|
|
dat += "</b><a style='display:block;width:100px' href='?_src_=prefs;preference=speech_verb;task=input'>[custom_speech_verb]</a><BR>"
|
|
|
|
|
dat += "<b>Custom Tongue:</b><BR>"
|
|
|
|
|
dat += "</b><a style='display:block;width:100px' href='?_src_=prefs;preference=tongue;task=input'>[custom_tongue]</a><BR>"
|
|
|
|
|
dat += "<b>Additional Language</b><BR>"
|
|
|
|
|
dat += "</b><a style='display:block;width:100px' href='?_src_=prefs;preference=language;task=input'>[additional_language]</a><BR>"
|
|
|
|
|
dat += "</td>"
|
|
|
|
|
dat += "</tr></table>"
|
|
|
|
|
|
|
|
|
|
if (1) // Game Preferences
|
|
|
|
|
dat += "<table><tr><td width='340px' height='300px' valign='top'>"
|
|
|
|
|
dat += "<h2>General Settings</h2>"
|
|
|
|
@@ -795,7 +820,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
|
|
|
|
|
dat += "<br>"
|
|
|
|
|
|
|
|
|
|
if(3)
|
|
|
|
|
if(4)
|
|
|
|
|
dat += "<table align='center' width='100%'>"
|
|
|
|
|
dat += "<tr><td colspan=4><center><b><font color='[gear_points == 0 ? "#E62100" : "#CCDDFF"]'>[gear_points]</font> loadout points remaining.</b> \[<a href='?_src_=prefs;preference=gear;clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
|
|
|
|
|
dat += "<tr><td colspan=4><center>You can only choose one item per category, unless it's an item that spawns in your backpack or hands.</center></td></tr>"
|
|
|
|
@@ -873,7 +898,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
dat += "</font>"
|
|
|
|
|
dat += "</td><td><font size=2><i>[gear.description]</i></font></td></tr>"
|
|
|
|
|
dat += "</table>"
|
|
|
|
|
if(4) // Content preferences
|
|
|
|
|
if(5) // Content preferences
|
|
|
|
|
dat += "<table><tr><td width='340px' height='300px' valign='top'>"
|
|
|
|
|
dat += "<h2>Fetish content prefs</h2>"
|
|
|
|
|
dat += "<b>Arousal:</b><a href='?_src_=prefs;preference=arousable'>[arousable == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
|
|
|
@@ -896,7 +921,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
dat += "<b>Automatic Wagging:</b> <a href='?_src_=prefs;preference=auto_wag'>[(cit_toggles & NO_AUTO_WAG) ? "Disabled" : "Enabled"]</a><br>"
|
|
|
|
|
dat += "</tr></table>"
|
|
|
|
|
dat += "<br>"
|
|
|
|
|
if(5) // Custom keybindings
|
|
|
|
|
if(6) // Custom keybindings
|
|
|
|
|
dat += "<b>Keybindings:</b> <a href='?_src_=prefs;preference=hotkeys'>[(hotkeys) ? "Hotkeys" : "Input"]</a><br>"
|
|
|
|
|
dat += "Keybindings mode controls how the game behaves with tab and map/input focus.<br>If it is on <b>Hotkeys</b>, the game will always attempt to force you to map focus, meaning keypresses are sent \
|
|
|
|
|
directly to the map instead of the input. You will still be able to use the command bar, but you need to tab to do it every time you click on the game map.<br>\
|
|
|
|
@@ -2191,11 +2216,17 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
var/selected_custom_tongue = input(user, "Choose your desired tongue (none means your species tongue)", "Character Preference") as null|anything in GLOB.roundstart_tongues
|
|
|
|
|
if(selected_custom_tongue)
|
|
|
|
|
custom_tongue = selected_custom_tongue
|
|
|
|
|
|
|
|
|
|
if("speech_verb")
|
|
|
|
|
var/selected_custom_speech_verb = input(user, "Choose your desired speech verb (none means your species speech verb)", "Character Preference") as null|anything in GLOB.speech_verbs
|
|
|
|
|
if(selected_custom_speech_verb)
|
|
|
|
|
custom_speech_verb = selected_custom_speech_verb
|
|
|
|
|
|
|
|
|
|
if("language")
|
|
|
|
|
var/selected_language = input(user, "Choose your desired additional language", "Character Preference") as null|anything in GLOB.roundstart_languages
|
|
|
|
|
if(selected_language)
|
|
|
|
|
additional_language = selected_language
|
|
|
|
|
|
|
|
|
|
if("bodysprite")
|
|
|
|
|
var/selected_body_sprite = input(user, "Choose your desired body sprite", "Character Preference") as null|anything in pref_species.allowed_limb_ids
|
|
|
|
|
if(selected_body_sprite)
|
|
|
|
@@ -2636,6 +2667,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|
|
|
|
new_custom_tongue.Insert(character)
|
|
|
|
|
if(custom_speech_verb != "default")
|
|
|
|
|
character.dna.species.say_mod = custom_speech_verb
|
|
|
|
|
if(additional_language && additional_language != "None")
|
|
|
|
|
var/language_entry = GLOB.roundstart_languages[additional_language]
|
|
|
|
|
if(language_entry)
|
|
|
|
|
character.grant_language(language_entry, TRUE, TRUE)
|
|
|
|
|
|
|
|
|
|
//limb stuff, only done when initially spawning in
|
|
|
|
|
if(initial_spawn)
|
|
|
|
|