Preferred Language + Autohiss Default Options

This commit is contained in:
Heroman3003
2023-04-14 15:30:49 +10:00
committed by CHOMPStation2
parent b8a9f86017
commit 0d5f21d733
6 changed files with 135 additions and 1 deletions

View File

@@ -1,6 +1,10 @@
/datum/preferences /datum/preferences
var/extra_languages = 0 var/extra_languages = 0
<<<<<<< HEAD
var/preferred_language = "common" // CHOMPStation Edit: Allow selecting a preferred language var/preferred_language = "common" // CHOMPStation Edit: Allow selecting a preferred language
=======
var/preferred_language = "common" // VOREStation Edit: Allow selecting a preferred language
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
/datum/category_item/player_setup_item/general/language /datum/category_item/player_setup_item/general/language
name = "Language" name = "Language"
@@ -13,10 +17,16 @@
if(islist(pref.alternate_languages)) // Because aparently it may not be? if(islist(pref.alternate_languages)) // Because aparently it may not be?
testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]")
S["language_prefixes"] >> pref.language_prefixes S["language_prefixes"] >> pref.language_prefixes
<<<<<<< HEAD
//CHOMPEdit Begin //CHOMPEdit Begin
S["species"] >> pref.species S["species"] >> pref.species
S["preflang"] >> pref.preferred_language S["preflang"] >> pref.preferred_language
//CHOMPEdit End //CHOMPEdit End
=======
//VORE Edit Begin
S["preflang"] >> pref.preferred_language
//VORE Edit End
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
S["language_custom_keys"] >> pref.language_custom_keys S["language_custom_keys"] >> pref.language_custom_keys
/datum/category_item/player_setup_item/general/language/save_character(var/savefile/S) /datum/category_item/player_setup_item/general/language/save_character(var/savefile/S)
@@ -26,7 +36,11 @@
testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]")
S["language_prefixes"] << pref.language_prefixes S["language_prefixes"] << pref.language_prefixes
S["language_custom_keys"] << pref.language_custom_keys S["language_custom_keys"] << pref.language_custom_keys
<<<<<<< HEAD
S["preflang"] << pref.preferred_language // CHOMPStation Edit S["preflang"] << pref.preferred_language // CHOMPStation Edit
=======
S["preflang"] << pref.preferred_language // VOREStation Edit
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
/datum/category_item/player_setup_item/general/language/sanitize_character() /datum/category_item/player_setup_item/general/language/sanitize_character()
if(!islist(pref.alternate_languages)) pref.alternate_languages = list() if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
@@ -38,10 +52,17 @@
testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])") testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])")
pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length
<<<<<<< HEAD
// CHOMPStation Edit Start // CHOMPStation Edit Start
if(!(pref.preferred_language in pref.alternate_languages) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set if(!(pref.preferred_language in pref.alternate_languages) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set
pref.preferred_language = S.language // Reset to default, for safety pref.preferred_language = S.language // Reset to default, for safety
// CHOMPStation Edit end // CHOMPStation Edit end
=======
// VOREStation Edit Start
if(!(pref.preferred_language in pref.alternate_languages) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set
pref.preferred_language = S.language // Reset to default, for safety
// VOREStation Edit end
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
// Sanitize illegal languages // Sanitize illegal languages
for(var/language in pref.alternate_languages) for(var/language in pref.alternate_languages)
@@ -87,7 +108,11 @@
. += "<b>Language Keys</b><br>" . += "<b>Language Keys</b><br>"
. += " [jointext(pref.language_prefixes, " ")] <a href='?src=\ref[src];change_prefix=1'>Change</a> <a href='?src=\ref[src];reset_prefix=1'>Reset</a><br>" . += " [jointext(pref.language_prefixes, " ")] <a href='?src=\ref[src];change_prefix=1'>Change</a> <a href='?src=\ref[src];reset_prefix=1'>Reset</a><br>"
<<<<<<< HEAD
. += "<b>Preferred Language</b> <a href='?src=\ref[src];pref_lang=1'>[pref.preferred_language]</a><br>" // CHOMPStation Add . += "<b>Preferred Language</b> <a href='?src=\ref[src];pref_lang=1'>[pref.preferred_language]</a><br>" // CHOMPStation Add
=======
. += "<b>Preferred Language</b> <a href='?src=\ref[src];pref_lang=1'>[pref.preferred_language]</a><br>" // VOREStation Add
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
/datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user) /datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user)
if(href_list["remove_language"]) if(href_list["remove_language"])
@@ -175,11 +200,19 @@
return TOPIC_REFRESH return TOPIC_REFRESH
<<<<<<< HEAD
// CHOMPStation Add: Preferred Language // CHOMPStation Add: Preferred Language
else if(href_list["pref_lang"]) else if(href_list["pref_lang"])
if(pref.species) // Safety to prevent a null runtime here if(pref.species) // Safety to prevent a null runtime here
var/datum/species/S = GLOB.all_species[pref.species] var/datum/species/S = GLOB.all_species[pref.species]
var/list/lang_opts = list(S.language) + pref.alternate_languages var/list/lang_opts = list(S.language) + pref.alternate_languages
=======
// VOREStation Add: Preferred Language
else if(href_list["pref_lang"])
if(pref.species) // Safety to prevent a null runtime here
var/datum/species/S = GLOB.all_species[pref.species]
var/list/lang_opts = list(S.language) + pref.alternate_languages + LANGUAGE_GALCOM
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
var/selection = tgui_input_list(user, "Choose your preferred spoken language:", "Preferred Spoken Language", lang_opts, pref.preferred_language) var/selection = tgui_input_list(user, "Choose your preferred spoken language:", "Preferred Spoken Language", lang_opts, pref.preferred_language)
if(!selection) // Set our preferred to default, just in case. if(!selection) // Set our preferred to default, just in case.
tgui_alert_async(user, "Preferred Language not modified.", "Selection Canceled") tgui_alert_async(user, "Preferred Language not modified.", "Selection Canceled")
@@ -190,7 +223,11 @@
else // Did they set anything else? else // Did they set anything else?
tgui_alert_async(user, "You will now speak [pref.preferred_language] if you do not specify a language when speaking.", "Preferred Language Set") tgui_alert_async(user, "You will now speak [pref.preferred_language] if you do not specify a language when speaking.", "Preferred Language Set")
return TOPIC_REFRESH return TOPIC_REFRESH
<<<<<<< HEAD
// CHOMPStation Add End // CHOMPStation Add End
=======
// VOREStation Add End
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
return ..() return ..()

View File

@@ -1,4 +1,5 @@
// Define a place to save appearance in character setup // Define a place to save appearance in character setup
<<<<<<< HEAD
// CHOMPStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than # // CHOMPStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
#define AUTOHISS_OFF 0 #define AUTOHISS_OFF 0
#define AUTOHISS_BASIC 1 #define AUTOHISS_BASIC 1
@@ -8,6 +9,17 @@
/datum/preferences /datum/preferences
var/vore_egg_type = "Egg" //The egg type they have. var/vore_egg_type = "Egg" //The egg type they have.
var/autohiss = "Full" // CHOMPStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space. var/autohiss = "Full" // CHOMPStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space.
=======
// VOREStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
#define AUTOHISS_OFF 0
#define AUTOHISS_BASIC 1
#define AUTOHISS_FULL 2
// VOREStation Add End
/datum/preferences
var/vore_egg_type = "Egg" //The egg type they have.
var/autohiss = "Full" // VOREStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space.
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
// Definition of the stuff for the egg type. // Definition of the stuff for the egg type.
/datum/category_item/player_setup_item/vore/egg /datum/category_item/player_setup_item/vore/egg
@@ -16,18 +28,30 @@
/datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S) /datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S)
S["vore_egg_type"] >> pref.vore_egg_type S["vore_egg_type"] >> pref.vore_egg_type
<<<<<<< HEAD
S["autohiss"] >> pref.autohiss // CHOMPStation Add S["autohiss"] >> pref.autohiss // CHOMPStation Add
/datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S) /datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S)
S["vore_egg_type"] << pref.vore_egg_type S["vore_egg_type"] << pref.vore_egg_type
S["autohiss"] << pref.autohiss // CHOMPStation Add S["autohiss"] << pref.autohiss // CHOMPStation Add
=======
S["autohiss"] >> pref.autohiss // VOREStation Add
/datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S)
S["vore_egg_type"] << pref.vore_egg_type
S["autohiss"] << pref.autohiss // VOREStation Add
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
/datum/category_item/player_setup_item/vore/egg/sanitize_character() /datum/category_item/player_setup_item/vore/egg/sanitize_character()
pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type)) pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type))
/datum/category_item/player_setup_item/vore/egg/copy_to_mob(var/mob/living/carbon/human/character) /datum/category_item/player_setup_item/vore/egg/copy_to_mob(var/mob/living/carbon/human/character)
character.vore_egg_type = pref.vore_egg_type character.vore_egg_type = pref.vore_egg_type
<<<<<<< HEAD
// CHOMPStation Add // CHOMPStation Add
=======
// VOREStation Add
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
if(pref.client) // Safety, just in case so we don't runtime. if(pref.client) // Safety, just in case so we don't runtime.
if(!pref.autohiss) if(!pref.autohiss)
pref.client.autohiss_mode = AUTOHISS_FULL pref.client.autohiss_mode = AUTOHISS_FULL
@@ -39,12 +63,20 @@
pref.client.autohiss_mode = AUTOHISS_BASIC pref.client.autohiss_mode = AUTOHISS_BASIC
if("Off") if("Off")
pref.client.autohiss_mode = AUTOHISS_OFF pref.client.autohiss_mode = AUTOHISS_OFF
<<<<<<< HEAD
// CHOMPStation Add // CHOMPStation Add
=======
// VOREStation Add
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
/datum/category_item/player_setup_item/vore/egg/content(var/mob/user) /datum/category_item/player_setup_item/vore/egg/content(var/mob/user)
. += "<br>" . += "<br>"
. += " Egg Type: <a href='?src=\ref[src];vore_egg_type=1'>[pref.vore_egg_type]</a><br>" . += " Egg Type: <a href='?src=\ref[src];vore_egg_type=1'>[pref.vore_egg_type]</a><br>"
<<<<<<< HEAD
. += "<b>Autohiss Default Setting:</b> <a href='?src=\ref[src];autohiss=1'>[pref.autohiss]</a><br>" // CHOMPStation Add . += "<b>Autohiss Default Setting:</b> <a href='?src=\ref[src];autohiss=1'>[pref.autohiss]</a><br>" // CHOMPStation Add
=======
. += "<b>Autohiss Default Setting:</b> <a href='?src=\ref[src];autohiss=1'>[pref.autohiss]</a><br>" // VOREStation Add
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
/datum/category_item/player_setup_item/vore/egg/OnTopic(var/href, var/list/href_list, var/mob/user) /datum/category_item/player_setup_item/vore/egg/OnTopic(var/href, var/list/href_list, var/mob/user)
if(!CanUseTopic(user)) if(!CanUseTopic(user))
@@ -56,7 +88,11 @@
if(selection) if(selection)
pref.vore_egg_type = selection pref.vore_egg_type = selection
return TOPIC_REFRESH return TOPIC_REFRESH
<<<<<<< HEAD
// CHOMPStation Add Start // CHOMPStation Add Start
=======
// VOREStation Add Start
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
else if(href_list["autohiss"]) else if(href_list["autohiss"])
var/list/autohiss_selection = list("Full", "Basic", "Off") var/list/autohiss_selection = list("Full", "Basic", "Off")
var/selection = tgui_input_list(user, "Choose your default autohiss setting:", "Character Preference", autohiss_selection, pref.autohiss) var/selection = tgui_input_list(user, "Choose your default autohiss setting:", "Character Preference", autohiss_selection, pref.autohiss)
@@ -65,6 +101,7 @@
else if(!selection) else if(!selection)
pref.autohiss = "Full" pref.autohiss = "Full"
return TOPIC_REFRESH return TOPIC_REFRESH
<<<<<<< HEAD
// CHOMPStation Add End // CHOMPStation Add End
else else
return return
@@ -74,3 +111,14 @@
#undef AUTOHISS_BASIC #undef AUTOHISS_BASIC
#undef AUTOHISS_FULL #undef AUTOHISS_FULL
// CHOMPStation Add End // CHOMPStation Add End
=======
// VOREStation Add End
else
return
// VOREStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
#undef AUTOHISS_OFF
#undef AUTOHISS_BASIC
#undef AUTOHISS_FULL
// VOREStation Add End
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs

View File

@@ -1,5 +1,30 @@
// VOREStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
#define AUTOHISS_OFF 0
#define AUTOHISS_BASIC 1
#define AUTOHISS_FULL 2
// VOREStation Add End
/mob/living/carbon/human/Login() /mob/living/carbon/human/Login()
..() ..()
update_hud() update_hud()
// VOREStation Add
if(client.prefs) // Safety, just in case so we don't runtime.
if(!client.prefs.autohiss)
client.autohiss_mode = AUTOHISS_FULL
else
switch(client.prefs.autohiss)
if("Full")
client.autohiss_mode = AUTOHISS_FULL
if("Basic")
client.autohiss_mode = AUTOHISS_BASIC
if("Off")
client.autohiss_mode = AUTOHISS_OFF
// VOREStation Add
if(species) species.handle_login_special(src) if(species) species.handle_login_special(src)
return return
// VOREStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than #
#undef AUTOHISS_OFF
#undef AUTOHISS_BASIC
#undef AUTOHISS_FULL
// VOREStation Add End

View File

@@ -684,12 +684,20 @@
var/datum/language/keylang = GLOB.all_languages[client.prefs.language_custom_keys[key]] var/datum/language/keylang = GLOB.all_languages[client.prefs.language_custom_keys[key]]
if(keylang) if(keylang)
new_character.language_keys[key] = keylang new_character.language_keys[key] = keylang
<<<<<<< HEAD
// CHOMPStation Add: Preferred Language Setting; // CHOMPStation Add: Preferred Language Setting;
=======
// VOREStation Add: Preferred Language Setting;
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
if(client.prefs.preferred_language) // Do we have a preferred language? if(client.prefs.preferred_language) // Do we have a preferred language?
var/datum/language/def_lang = GLOB.all_languages[client.prefs.preferred_language] var/datum/language/def_lang = GLOB.all_languages[client.prefs.preferred_language]
if(def_lang) if(def_lang)
new_character.default_language = def_lang new_character.default_language = def_lang
<<<<<<< HEAD
// CHOMPStation Add End // CHOMPStation Add End
=======
// VOREStation Add End
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
// And uncomment this, too. // And uncomment this, too.
//new_character.dna.UpdateSE() //new_character.dna.UpdateSE()

View File

@@ -172,12 +172,20 @@
var/datum/language/keylang = GLOB.all_languages[ghost_client.prefs.language_custom_keys[key]] var/datum/language/keylang = GLOB.all_languages[ghost_client.prefs.language_custom_keys[key]]
if(keylang) if(keylang)
new_character.language_keys[key] = keylang new_character.language_keys[key] = keylang
<<<<<<< HEAD
// CHOMPStation Add: Preferred Language Setting; // CHOMPStation Add: Preferred Language Setting;
=======
// VOREStation Add: Preferred Language Setting;
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
if(ghost_client.prefs.preferred_language) // Do we have a preferred language? if(ghost_client.prefs.preferred_language) // Do we have a preferred language?
var/datum/language/def_lang = GLOB.all_languages[ghost_client.prefs.preferred_language] var/datum/language/def_lang = GLOB.all_languages[ghost_client.prefs.preferred_language]
if(def_lang) if(def_lang)
new_character.default_language = def_lang new_character.default_language = def_lang
<<<<<<< HEAD
// CHOMPStation Add End // CHOMPStation Add End
=======
// VOREStation Add End
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
//If desired, apply equipment. //If desired, apply equipment.
if(equip_body) if(equip_body)

View File

@@ -166,12 +166,20 @@ Please do not abuse this ability.
var/datum/language/keylang = GLOB.all_languages[prey.prefs.language_custom_keys[key]] var/datum/language/keylang = GLOB.all_languages[prey.prefs.language_custom_keys[key]]
if(keylang) if(keylang)
new_character.language_keys[key] = keylang new_character.language_keys[key] = keylang
<<<<<<< HEAD
// CHOMPStation Add: Preferred Language Setting; // CHOMPStation Add: Preferred Language Setting;
=======
// VOREStation Add: Preferred Language Setting;
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
if(prey.prefs.preferred_language) // Do we have a preferred language? if(prey.prefs.preferred_language) // Do we have a preferred language?
var/datum/language/def_lang = GLOB.all_languages[prey.prefs.preferred_language] var/datum/language/def_lang = GLOB.all_languages[prey.prefs.preferred_language]
if(def_lang) if(def_lang)
new_character.default_language = def_lang new_character.default_language = def_lang
<<<<<<< HEAD
// CHOMPStation Add End // CHOMPStation Add End
=======
// VOREStation Add End
>>>>>>> 657ee05f13... Merge pull request #14756 from Rykka-Stormheart/shep-dev-auto-lang-prefs
new_character.regenerate_icons() new_character.regenerate_icons()